在微服务系统中,使用轻量级消息代理创建一个公共的主题通过广播的方式让所有服务进行订阅消费- - 消息总线。
消息代理(Message Broker):是一种消息验证、传输、路由的架构模式。在应用程序之间起到相互通讯、降低耦合度等作用。
spring cloud 中使用 spring cloud bus 实现消息总线的功能,默认使用RabbitMQ消息中间件。下面就进行配置消息总线。
1、pom.xml添加依赖
<!--springcloud-bus-->
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-bus-amqp -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
<version>1.3.2.RELEASE</version>
</dependency>
2、配置文件添加Rabbit MQ配置
#配置RabbitMQ
spring.rabbitmq.host=192.168.xxx.xxx
spring.rabbitmq.port=5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=a123456
通过上面的配置到各应用服务及config-server就已经配置完成消息总线的功能,通过post访问http://ip:port/bus/refresh?destination=服务名:**
的方式会使服务名对应的服务刷新配置–使用@RefreshScope
注解的属性。或者http://ip:port/contextPath/bus/refresh
的方式访问,会发现相应工程会重新拉取配置。
问题:
访问上边的地址控制台会提示Full authentication is required to access actuator endpoints. Consider adding Spring Security or set 'management.security.enabled' to false.
;
设置 management.security.enabled=false ,来暴露端点
流向图: