springcloud+bus消息总线+rabbitmq
启动rabbitmq:
docker run -d -p 5672:5672 -p 15672:15672 rabbitmq:management
rabbitmq默认是5672,所以改为5672端口
1、config-client加入依赖
<!--配置中心结合消息队列-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
2、配置文件yml
#暴露全部的监控信息 management: endpoints: web: exposure: include: "*"
#服务的名称 spring: rabbitmq: host: 192.168.1.220 port: 5672 username: springcloud password: springcloud
3、需要刷新配置的地方,增加注解 @RefreshScope 4、访问验证 post方式: http://localhost:{port}/actuator/bus-refresh
5、rabbitmq 添加用户springcloud
报错:org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused: connect
Caused by: java.net.ConnectException: Connection refused: connect
解决:注意springboot服务配置的rabbitmq端口为5672
报错:Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method:
解决:
修改权限,点击Set permission,ok
原理分析:
主要是通过消息总线的方式,将其中一个实例的更新请求/bus/refresh
,传递给其他实例,达到同时刷新的目的