Spring Cloud Bus + RabbitMQ 消息服务总线

  1. 下载软件Erlang(RabbitMQ需要)和RabbitMQ,根据安装提示一步步安装软件
  2. 在软件的安装目录(rabbitmq_server-3.9.13\sbin)sbin下打开cmd输入命令安装插件,安装完后可在开始菜单的RabbitMQ中看到插件的快捷方式
rabbitmq-plugins enable rabbitmq_management
  1. 运行插件star启动RabbitMQ,如果运行失败则到安装目录sbin下启动cmd运行命令,启动RabbitMQ
rabbitmq-server start
  1. 进入网址(默认端口为15672),登陆(帐密均为guest)RabbitMQ,即可看到管理页面
  2. 首先来配置config server,首先是依赖,
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
    <version></version>
</dependency>
<!--暴露对外刷新接口-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
    <version></version>
</dependency>

然后是yml,配置好后在启动类上添加注解@EnableConfigServer,这样就配置好了config server

# 暴露刷新接口bus-refresh
management:
  endpoints:
    web:
      exposure:
        include: bus-refresh
spring:
  cloud:
    config:
      server:
        git:
          # git的地址
          uri: https://gitee.com/xxx/xxx.git
          # master分支
          default-label: master
  rabbitmq:
    # rabbitmq的host
    host: 127.0.0.1
    # port
    port: 5672
    # username
    username: guest
    # password
    password: guest
  1. 配置config client,这里要保证两个及以上的config client,方便查看效果。首先是依赖
spring:
  cloud:
    config:
      # 分支名称
      label: master
      # 配置名
      name: config
      # 配置的profile
      profile: dev
  config:
    # 导入配置的位置(config server的地址)
    import: configserver:http://localhost:8083
management:
  endpoints:
    web:
      exposure:
        # 暴露所有端口
        include: "*"

然后是写Controller的接口,以下代码为示例,在复制一份,这样就做完了两个config client

@Value("${config.info}")
private String config;

@RequestMapping("/config")
public String getConfig(){
    return config;
}
  1. 首先访问两个config client的接口,发现获取到的值为git上的值。
  2. 然后我们修改git上的值,然后刷新两个config client的接口发现并未变化
  3. 我们需要发送一个post请求来通知config server配置已经变化,让他通知其他的config client修改配置,可以用win的cmd命令行输入以下命令
curl -X POST "http://localhost:8083/actuator/bus-refresh"
  1. 通知后再刷新两个config client,这时可以发现他们两个的值均为修改后的最新值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值