gpt4 book ai didi

SpringCloud Bus 消息总线的具体使用

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章SpringCloud Bus 消息总线的具体使用由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

什么是消息总线 。

1. 概念 。

在微服务架构中,通常会使用轻量级的消息代理来构建一个共用的消息主题来连接各个微服务实例, 它广播的消息会被所有在注册中心的微服务实例监听和消费,也称消息总线 。

2. springcloud bus 。

springcloud中也有对应的解决方案,springcloud bus 将分布式的节点用轻量的消息代理连接起来, 可以很容易搭建消息总线,配合springcloud config 实现微服务应用配置信息的动态更新.

3. 其他 。

消息代理属于中间件。设计代理的目的就是为了能够从应用程序中传入消息,并执行一些特别的操作。 开源产品很多如activemq、kafka、rabbitmq、rocketmq等 目前springcloud仅支持rabbitmq和kafka。本文采用rabbitmq实现这一功能.

搭建分布式配置中心 。

1. config 架构 。

SpringCloud Bus 消息总线的具体使用

当一个系统中的配置文件发生改变的时候,我们需要重新启动该服务,才能使得新的配置文件生效,spring cloud config可以实现微服务中的所有系统的配置文件的统一管理,而且还可以实现当配置文件发生变化的时候,系统会自动更新获取新的配置.

2. git 环境搭建 。

使用 码云 环境搭建 git 。

码云环境地址: https://gitee.com/guopf/springcloud_bus 。

3. git服务器上传配置文件 。

命名规范 服务名称-版本.yml 例如configclient_dev.yml 。

SpringCloud Bus 消息总线的具体使用

4. 搭建 eureka 服务注册中心 。

具体搭建环境随后补充,可以使用我自己部署的 http://47.105.86.222:8100 (配置地址http://47.105.86.222:8100/eureka) 。

5. 搭建 config-server 服务 。

1. maven 依赖 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<dependencies>
     <!-- springboot整合web组件 -->
     <dependency>
       <groupid>org.springframework.boot</groupid>
       <artifactid>spring-boot-starter-web</artifactid>
     </dependency>
     <!--spring-cloud 整合 config-server -->
     <dependency>
       <groupid>org.springframework.cloud</groupid>
       <artifactid>spring-cloud-config-server</artifactid>
       <version> 2.0 . 2 .release</version>
     </dependency>
 
     <!-- springboot整合eureka客户端 -->
     <dependency>
       <groupid>org.springframework.cloud</groupid>
       <artifactid>spring-cloud-starter-netflix-eureka-client</artifactid>
       <version> 2.0 . 2 .release</version>
     </dependency>
  </dependencies>

2. 配置文件 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
### 服务地址 端口
server:
  port: 8800
### 服务名称
spring:
  application:
   name: config_server
  cloud:
   config:
    server:
     git:
      ### git 地址
      uri: https: //gitee.com/guopf/springcloud_bus.git
      username:
      password:
      ### 配置读取文件夹
      search-paths: config
    ### 分支
    label: master
 
### eureka 配置
eureka:
  client:
   service-url:
    defaultzone: http: //47.105.86.222:8100/eureka
   register-with-eureka: true
   fetch-registry: true

3. 启动 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
/**
  * @enableeurekaclient : 开启 eureka 客户端
  * @enableconfigserver : 开启 config 服务端
  *
  */
@springbootapplication
@enableeurekaclient
@enableconfigserver
public class app {
   public static void main(string[] args) {
     springapplication.run(app. class ,args);
   }
}

搭建 config-client 服务 。

1. 手动更新  。

1. maven 依赖 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<dependencies>
   <!-- springboot整合web组件 -->
   <dependency>
     <groupid>org.springframework.boot</groupid>
     <artifactid>spring-boot-starter-web</artifactid>
   </dependency>
   <dependency>
     <groupid>org.springframework.cloud</groupid>
     <artifactid>spring-cloud-config-client</artifactid>
     <version> 2.0 . 2 .release</version>
   </dependency>
   <!-- springboot整合eureka客户端 -->
   <dependency>
     <groupid>org.springframework.cloud</groupid>
     <artifactid>spring-cloud-starter-netflix-eureka-client</artifactid>
     <version> 2.0 . 2 .release</version>
   </dependency>
   <!--核心jar包,集成rabbitmq 消息总线 bus
   <dependency>
     <groupid>org.springframework.cloud</groupid>
     <artifactid>spring-cloud-starter-bus-amqp</artifactid>
   </dependency>
   -->
   <!-- actuator监控中心 -->
   <dependency>
     <groupid>org.springframework.boot</groupid>
     <artifactid>spring-boot-starter-actuator</artifactid>
   </dependency>
 
</dependencies>

2. 配置文件(bootstrap.yml) 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
### 端口
server:
  port: 8801
  ### eureka 配置中心
eureka:
  client:
   service-url:
    defaultzone: http: //47.105.86.222:8100/eureka
   fetch-registry: true
   register-with-eureka: true
 
### 配置服务名称,要和config 配置中心文件保持一致
spring:
  application:
   name: configclient
  cloud:
   config:
    ### 读取配置
    profile: dev
    discovery:
     ###
     enabled: true
     ### config 配置中心配置的服务名称
     service-id: config_server
management:
  endpoints:
   web:
    exposure:
     include: "*"

3. 启动 。

?
1
2
3
4
5
6
7
8
@springbootapplication
@enableeurekaclient
@enablediscoveryclient
public class app {
   public static void main(string[] args) {
     springapplication.run(app. class ,args);
   }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
  * 在读取配置文件信息的地方进行添加 @refreshscope 注解
  */
@restcontroller
@refreshscope
public class appcontroller {
 
   @value ( "${userage}" )
   private string userage;
 
   @getmapping ( "/userage" )
   public string config(){
     system.out.println( "userage : " + userage);
     return userage;
   }
}

修改git仓库中的配置,进行手动更新,post请求 。

http://127.0.0.1:8801/actuator/refresh  启动刷新器 从cofnig_server读取 。

2. 使用消息总线 bus 更新 。

1. 添加依赖信息 。

在 config_server,config_client 中添加  。

?
1
2
3
4
5
6
7
8
9
<dependency>
   <groupid>org.springframework.cloud</groupid>
   <artifactid>spring-cloud-starter-bus-amqp</artifactid>
</dependency>
<!-- actuator监控中心 -->
<dependency>
   <groupid>org.springframework.boot</groupid>
   <artifactid>spring-boot-starter-actuator</artifactid>
</dependency>

2. 配置文件修改 。

添加对 rabbbitmq的配置, rabbitmq服务和config_server,config_client 在一个服务器上,使用默认配置即可 。

?
1
2
3
4
5
6
7
### rabbitmq 配置信息
  rabbitmq:
   addresses: 47.105 . 86.222
   username: guest
   password: guest
   port: 5672
   virtual-host: /

3. 刷新 。

http://127.0.0.1:8801/actuator/bus-refresh   post方式 。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:https://segmentfault.com/a/1190000017391824 。

最后此篇关于SpringCloud Bus 消息总线的具体使用的文章就讲到这里了,如果你想了解更多关于SpringCloud Bus 消息总线的具体使用的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com