十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍了SpringCloud Bus消息总线怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
专注于为中小企业提供成都网站建设、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业凤阳免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
什么是消息总线
1. 概念
在微服务架构中,通常会使用轻量级的消息代理来构建一个共用的消息主题来连接各个微服务实例, 它广播的消息会被所有在注册中心的微服务实例监听和消费,也称消息总线
2. SpringCloud Bus
SpringCloud中也有对应的解决方案,SpringCloud Bus 将分布式的节点用轻量的消息代理连接起来, 可以很容易搭建消息总线,配合SpringCloud config 实现微服务应用配置信息的动态更新。
3. 其他
消息代理属于中间件。设计代理的目的就是为了能够从应用程序中传入消息,并执行一些特别的操作。 开源产品很多如ActiveMQ、Kafka、RabbitMQ、RocketMQ等 目前springCloud仅支持RabbitMQ和Kafka。本文采用RabbitMQ实现这一功能。
搭建分布式配置中心
1. Config 架构
当一个系统中的配置文件发生改变的时候,我们需要重新启动该服务,才能使得新的配置文件生效,spring cloud config可以实现微服务中的所有系统的配置文件的统一管理,而且还可以实现当配置文件发生变化的时候,系统会自动更新获取新的配置。
2. Git 环境搭建
使用 码云 环境搭建 git
码云环境地址: https://gitee.com/guopf/springcloud_bus
3. Git服务器上传配置文件
命名规范 服务名称-版本.yml 例如configclient_dev.yml
4. 搭建 Eureka 服务注册中心
具体搭建环境随后补充,可以使用我自己部署的 http://47.105.86.222:8100 (配置地址http://47.105.86.222:8100/eureka)
5. 搭建 config-server 服务
1. maven 依赖
org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-config-server 2.0.2.RELEASE org.springframework.cloud spring-cloud-starter-netflix-eureka-client 2.0.2.RELEASE
2. 配置文件
### 服务地址 端口 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. 启动
/** * @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 依赖
org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-config-client 2.0.2.RELEASE org.springframework.cloud spring-cloud-starter-netflix-eureka-client 2.0.2.RELEASE org.springframework.boot spring-boot-starter-actuator
2. 配置文件(bootstrap.yml)
### 端口 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. 启动
@SpringBootApplication @EnableEurekaClient @EnableDiscoveryClient public class App { public static void main(String[] args) { SpringApplication.run(App.class,args); } }
/** * 在读取配置文件信息的地方进行添加 @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 中添加
org.springframework.cloud spring-cloud-starter-bus-amqp org.springframework.boot spring-boot-starter-actuator
2. 配置文件修改
添加对 rabbbitMQ的配置, rabbitMQ服务和config_server,config_client 在一个服务器上,使用默认配置即可
### 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方式
感谢你能够认真阅读完这篇文章,希望小编分享的“SpringCloud Bus消息总线怎么用”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!