博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springCloud学习-消息总线(Spring Cloud Bus)
阅读量:5322 次
发布时间:2019-06-14

本文共 2795 字,大约阅读时间需要 9 分钟。

1、简介

  Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来。它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控。本文要讲述的是用Spring Cloud Bus实现通知微服务架构的配置文件的更改。

Spring Cloud Bus 可选的消息代理组建包括 RabbitMQ 、 AMQP 和Kafka 等。本节 讲述的是用 RabbitMQ 作为 Spring Cloud 的消息组件去刷新更改微服务的配置文件。 因此需要安装RabbitMQ,点击下载。安装和使用方式请自行搜索。

2、改造config-client

  1、此功能只需要改造config-client工程,首先在pom.xml中引入基于rabbitMQ实现的 spring cloud bus的起步依赖spring-cloud-starter-bus-amqp,代码如下

4.0.0
com.lishun
config-client
0.0.1-SNAPSHOT
jar
config-client
Demo project for Spring Boot
com.lishun
cloud
1.0-SNAPSHOT
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.cloud
spring-cloud-starter-bus-amqp
org.springframework.boot
spring-boot-starter-actuator
org.springframework.boot
spring-boot-starter-web
org.springframework.cloud
spring-cloud-starter-config

  2、在配置文件bootstrap.properties中加上RabbitMq的配置,包括RabbitMq的地址、端口,用户名、密码。并需要加上spring.cloud.bus的三个配置,具体如下:

spring.rabbitmq.host=localhostspring.rabbitmq.port=5672 spring.rabbitmq.username=guestspring.rabbitmq.password=guestspring.cloud.bus.enabled=truespring.cloud.bus.trace.enabled=truemanagement.endpoints.web.exposure.include=bus-refresh

  3、最后 需要在更新的配置类上加@ RefreshScope 注解 只有加上了该注解,才会在不重启服务的情况下更新配置 ,代码如下

@SpringBootApplication@RestController@RefreshScopepublic class ConfigClientApplication {    public static void main(String[] args) {        SpringApplication.run(ConfigClientApplication.class, args);    }    @Value("${id}")    String id;    @RequestMapping(value = "/hi")    public String hi(){        return id;    }}

  4、依次启动eureka-server、confg-cserver,启动两个config-client,端口为:8881、8882。

  5、访问 或者 浏览器显示:

config-test

  6、将github上的配置文件id的值改为config-test-11,如果是传统的做法,需要重启服务,才能达到配置文件的更新。们只需要发送post请求:,在控制台你会发现config-client会重新读取配置文件。

  7、这时我们再访问 或者 浏览器显示:

config-test-11

  /actuator/bus-refresh接口可以指定服务,即使用”destination”参数,比如 “/actuator/bus-refresh?destination=customers:**” 即刷新服务名为customers的所有服务。

转载于:https://www.cnblogs.com/shun-gege/p/9508381.html

你可能感兴趣的文章
BZOJ1043 [HAOI2008]下落的圆盘
查看>>
SqlDbx连接oracle(无需安装Oracle客户端)
查看>>
关于Membership和身份认证的记录
查看>>
斐波拉契数列
查看>>
PLAY2.6-SCALA(十) 模板引擎Twirl
查看>>
Junit单元测试初级(一)
查看>>
OC 方法声明使用
查看>>
mysql复习笔记
查看>>
通过JDBC连接hive
查看>>
leetcode 144. Binary Tree Preorder Traversal
查看>>
[杂项] 知识综合运用
查看>>
PostgreSQL的 initdb 源代码分析之十三
查看>>
对pgpoo-II的pool_process_context的 proc_id 的理解
查看>>
Appium移动自动化测试-----(十)appium API 之上下文操作
查看>>
【转】STL中的set容器的一点总结
查看>>
js的转换函数
查看>>
短信发送AZDG加密算法
查看>>
根据表生成流水号
查看>>
实验三
查看>>
iOS 常用英语翻译
查看>>