SpringCloud Bus 消息总线

2018-09-01  本文已影响134人  BzCoder

上一篇文章我们介绍了配置中心,但是现在更新配置还是要重启啊!?所以我们本章就来介绍一个不重启的方法。

相关资料以及注意事项:

服务端

1.引入MAVEN

相比上一篇文章,新添加以下两个

2.配置文件

配置文件配置了RabbitMQ的地址以及暴露刷新配置接口地址

spring:
  application:
    name: config
  cloud:
    config:
      server:
        git:
          uri: https://github.com/BzCoder/config-repo
          username: 
          password: 
          basedir: D:/Config/basedir
  rabbitmq:
    host: 192.168.15.128
    username: guest
    password: guest
    port: 5672

eureka:
  instance:
    prefer-ip-address: true
  client:
    service-url:
      defaultZone: http://localhost:8762/eureka/
# 开放 bus-refresh 接口,以便配合 bus 实现 配置的动态刷新
management:
  endpoints:
    web:
      exposure:
        include: '*'

服务端配置完毕

客户端

1.引入MAVEN

相比上一篇文章,新添加以下一个

2.代码修改

在你需要刷新的作用域上添加@RefreshScope,这样随着配置刷新,参数就会刷新

@RestController
@RefreshScope
public class ConfigController {
    @Value("${env}")
    private String env;

    @GetMapping("/env")
    public String getEnv()
    {
        return env;
    }

}

这样客户端也配置完毕了。

3.实践操作

如果在RabbitMQ的管理界面中会出现两个新的队列,那么恭喜你,已经成功了一半了。

新的队列
接下来在修改远程仓库的数据后向ConfigServer端口:http://localhost:8080/actuator/bus-refresh,如何返回状态为200,就表示你已经刷新配置。 成功

在我们的Client端可以看到配置更新的Log,这样就代表你成功了。
那么有关于SpringCloudBus就介绍到这里了,有关于利用Webhook自动刷新配置,要等待Spring官方进行修复。等以后来填坑。

上一篇下一篇

猜你喜欢

热点阅读