SpringCloud------消息总线Bus实现配置中心自动获取git中xml配置

Posted 玉天恒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud------消息总线Bus实现配置中心自动获取git中xml配置相关的知识,希望对你有一定的参考价值。

介绍和使用场景

1)什么是消息

一个事件,需要广播或者单独传递给某个接口

2)为什么使用这个

配置更新了,但是其他系统不知道是否更新

 

SpringCloud配置中心可参考:

 https://www.cnblogs.com/tianhengblogs/p/12508120.html

 

1.安装RabbitMQ

下载地址:

http://erlang.org/download/

Erlang版本:Erlang OTP 21:10.0.1

下载地址:

https://www.rabbitmq.com/install-windows.html

RabbitMQ版本:Rabbitmq: 3.7.15

 

2.访问地址

http://127.0.0.1:15672/

用户名:guest

密码:guest

 

3.添加依赖

例如:

商品服务添加下面依赖,配置中心服务不用加

<!-- bus,rabbitmq -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

 

4.修改Controller

添加@RefreshScope注解

@RestController
@RequestMapping("/api/v1/product")
@RefreshScope
public class ProductController {

    @Value("${server.port}")
    private String port;

    //这是自己加的配置
    @Value("${env}")
    private String env;

    @RequestMapping("/list")
    public Object getAllList() {
        String msg = "data from port: " + port + ",env: " + env);
        return ;
    }

}    

 

5.添加项目中的bootstrap..yml配置

spring:
  #添加RabbitMQ配置
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest

#暴露全部的监控信息
management:
  endpoints:
    web:
      exposure:
        include: "*"

 

6.启动项目后,修改git中的yml配置env,再用Postman调用下面接口

步骤:

修改git的application.yml配置

1)修改端口号为:8771,启动项目

)修改端口号为:8772,启动项目

    修改env为:test1234

注意:

使用SpringCloud配置中心后,在idea中修改配置-Dserver.port=8772启动项目是不生效的

 

 

7.访问接口,查看返回的env是否改变,evn值均变为test123456

http://127.0.0.1:8771/api/v1/product/find?id=1

http://127.0.0.1:8772/api/v1/product/find?id=1

 

 

 

建议:

动态刷新配置,在开发和测试环境使用,尽量少在生产环境使用

 

以上是关于SpringCloud------消息总线Bus实现配置中心自动获取git中xml配置的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud(Greenwich版)Bus消息总线

SpringCloud学习——消息总线Bus

SpringCloud-2.0-周阳(14. 消息总线 - SpringCloud Bus)

SpringCloud Hoxton——Bus服务消息总线

SpringCloud Hoxton——Bus服务消息总线

SpringCloud 教程 消息总线(Spring Cloud Bus)