SpringCloud 消息总线Bus

Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来。它可以实现通知微服务架构的配置文件的更改等操作,也可用于监控等。
开始本例之前需要安装rabbitmq

准备

使用前面涉及到的几个项目
springcloud-eureka-server:eureka服务端,不做更改
springcloud-config-server:config服务端,不做更改
springcloud-config-client:config客户端,作为客户端,同时也可能是其他服务的服务端,本例主要修改config-client

添加引入

修改pom文件,添加bus需要的配置

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<dependency>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-actuator</artifactId>  
</dependency> 
<dependency>
    <groupId>org.springframework.retry</groupId>
    <artifactId>spring-retry</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
</dependency>

配置文件

添加bus相关配置。一定要加上management.security.enabled

spring.application.name=config
spring.cloud.config.label=master
spring.cloud.config.profile=dev
#spring.cloud.config.uri= http://localhost:8770/
server.port=8771
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.serviceId=config-server
spring.rabbitmq.host=192.168.20.211
spring.rabbitmq.port=5672
management.security.enabled=false
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

其中spring.rabbitmq.host和spring.rabbitmq.port指定rabbitmq的主机和端口,如果配置了账号和密码,继续添加spring.rabbitmq.username spring.rabbitmq.password

Java代码

只需要在Controller的class上面添加注解:
@RefreshScope

运行

1 网页打开 http://localhost:8771/hi 查看是否为github中配置文件数据
2 修改github中name对应的数据
3 发送post请求(必须为Post):http://localhost:8771/bus/refresh
其中bus/refresh表示刷新配置。
如果是windows系统,可以使用postman等工具。
如果是mac或者Linux系统,可以直接执行

curl -X POST http://localhost:8771/bus/refresh

4 再次打开 http://localhost:8771/hi 查看是否为github中配置新的数据

转载:https://www.kancloud.cn/fymod/springcloud/543286

源码地址:https://github.com/keith002/springcloud-eureka/tree/master/springcloud-eureka-bus

猜你喜欢

转载自blog.csdn.net/Keith003/article/details/82388520