spring cloud之消息总线(九)

一、博客背景

    在前面博客中,我们新建了配置服务端config-server, 也把feignserver服务改造成了配置客户端,但是当需要刷新配置信息的时候,不得不既重启 config-server, 又重启微服务。 这样的体验当然是不太好的。 我们当然是希望一旦 git 上的配置信息修改之后,就可以自动地刷新到微服务里,而不是需要手动重启才可以。本篇博客就讲解spring cloud如何利用消息总线来达到这一功能,本篇将继续对feiginserver做改动。

二、RabbitMQ安装与启动

如何安装RabbitMQ并且启动,本篇博客就不讲解

三、修改pom文件

增加引入相关依赖

        <!-- 引起actuator监控中心依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <!-- 引起bus依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>

        <!-- 引起hutool工具包依赖 -->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.1.0</version>
        </dependency>

四、修改bootstrap.yml文件

增加总线和rabitmq配置,注意缩进位置

bus:
      #启用springcloud config bus
      enabled: true
      #开启跟踪总线事件。
      trace:
        enabled: true
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest

五、修改application.yml文件

新增路径访问允许:

#management.endpoints.web.exposure.include 配置表示暴露刷新的地址,cors.allowed-methods允许访问的方法
management:
  endpoints:
    web:
      exposure:
        include: "*"
      cors:
        allowed-origins: "*"
        allowed-methods: "*"

六、新增刷新配置访问工具类

package tp;

import cn.hutool.http.HttpUtil;

import java.util.HashMap;

/**
 * @Package: com.tp
 * @ClassName: ConfigUtil
 * @Author: tanp
 * @Description: ${description}
 * @Date: 2020/7/22 14:41
 */
public class ConfigUtil {

    public static void main(String[] args) {
        HashMap<String,String> headers =new HashMap<>();
        headers.put("Content-Type", "application/json; charset=utf-8");

        String result = HttpUtil.createPost("http://localhost:8685/actuator/bus-refresh").addHeaders(headers).execute().body();
        System.out.println("result:"+result);
        System.out.println("refresh 完成");
    }
}

七、修改访问cotroller

在对外访问的controller上加上@RefreshScope注解,@RefreshScope注解,该注解表示在接到SpringCloud配置中心配置刷新的时候,自动将新的配置更新到该类对应的字段中。

 

八、修改git的配置信息

 testconfig = change again

然后将修改后的配置文件上传到git,可以参考我的博客:https://blog.csdn.net/bird_tp/article/details/107489178

九、重启feignserver并请求接口

重启服务后,然后访问http://127.0.0.1:8685/showconfig

可以看到,我们获取到的配置信息已经修改,而我们也并未重启配置服务,

后续若再次更新配置,直接运行工具类即可刷新配置信息

如我修改

 testconfig = change three jj

 

然后运行工具类,

在访问http://127.0.0.1:8685/showconfig,可以发现展示信息以及变了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值