spring cloud config bus集成rabbitmq实现多实例同步刷新

当相同服务的远程配置发生修改时,传统做法需要根据服务的实例列表一个个手动调用refresh节点。这在实例很多的情况下不容易维护,因此我需要通过消息总线来达到更新一个服务的实例时将更新同步到eureka服务中心治理下的所有服务实例当中,接下来我们看看如何进行消息总线的配置。

1.在pom.xml中引入spring-cloud-starter-bus-amqp(因为我们集成的消息中间件为rabbitmq)依赖

        <dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-bus-amqpartifactId>
        dependency>

2.在配置文件中添加rabbItmq的相关配置

#配置rabbitmq
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

3.更新远程git仓库下的配置文件

4.调用当前实例的/bus/refresh节点

5.刷新所有相同服务实例,发现通过消息总线完成了配置的同步更新

指定刷新的实例或服务
/bus/refresh节点提供了一个destination参数来指定需要刷新的实例或服务,根据这个特性我们可以对架构继续做出调整,将消息总线与config-server进行绑定,调用config-server实例的/bus/refresh节点并通过destination参数指定需要刷新配置的服务来达到批量刷新的目的。

你可能感兴趣的:(spring,cloud)