一、前言
本篇笔者是根据上篇进行修改,若有不懂,转《Spring Cloud 入门 之 Config(六)附源码》了解
二、介绍
Spring Cloud Bus 是 Spring Cloud 家族中的一个子项目,用于实现微服务之间的通信。它整合 Java 的事件处理机制和消息中间件消息的发送和接受,主要由发送端、接收端和事件组成。针对不同的业务需求,可以设置不同的事件,发送端发送事件,接收端接受相应的事件,并进行相应的处理。
三、配置
3.1config-server
3.1.1添加依赖:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> <version>2.1.0.RELEASE</version> </dependency>
3.1.2 修改 application.yml:
添加了 rabbitmq 配置和 management 的配置
server: port: 10000spring: application: name: CONFIG cloud: config: server: git: uri: https://github.com/Uncle-LiuY/config.git username: ****** password: ****** rabbitmq: host: 127.0.0.0 port: 5672 username: admin password: admin management: endpoints: web: exposure: include: '*' # 暴露接口 eureka: instance: instance-id: config-api client: service-url: defaultZone: http://localhost:9000/eureka/ # 注册中心访问地址
3.2 api
3.2.1 添加依赖;
<!-- bus --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> <version>2.1.0.RELEASE</version> </dependency>
3.2.2 修改 bootstrap.yml:
添加 rabbitmq 配置
spring: application: name: api cloud: config: discovery: enabled: true service-id: CONFIG # config-server 在注册中心的名称 profile: dev # 指定配置文件的环境 rabbitmq: host: 127.0.0.0 port: 5672 username: admin password: admin eureka: client: service-url: defaultZone: http://localhost:9000/eureka/ # 注册中心访问地址
3.2.3 修改TestController
添加 @RefreshScope 注解,顺序一定不能错
@RestController@RequestMapping("/test")@RefreshScopepublic class TestController { @Value("${env}") private String env; // 从配置中心获取 @RequestMapping("/getConfigInfo") public String getConfigInfo() { return env; } }
4.测试
依次启动 eureka-server、config-server、api
4.1 参数原来的值:
4.2 修改文件值为:dev123
4.3 POST执行
http://localhost:10000/actuator/bus-refresh
间隔几秒再执行 http://localhost/test/getConfigInfo 就会发现获取的值变了。
5.项目地址
到这里还是需要手动调用才能更新,下篇《Spring Cloud 集成 WebHook》讲解在线更新
评论 (0)