1、为什么要用消息总线?
通过上面的config配置中心,我们知道它方便了我们修改配置文件,不用动线上的东西,只需要在gitee上编辑修改即可。但是有一个问题,就是我们在gitee上面修改了配置文件以后,我们线上的项目根本就不知道你修改了,它必须得重启服务才会重新去读取你修改的配置文件,否则还是一直用的原来的,这样就需要我们每次修改配置文件都重启服务,这样显然不行!
因此引入了消息总线Spring Cloud Bus,他通过一个rabbitMq消息中间件,当我们的gitee上面的配置文件信息修改时,手动向MQ发送消息,然后特定微服务模块读取到MQ中的信息即可完成更新,而不用重启服务
2、具体步骤
(1)在config的pom.xml文件中加依赖(bus依赖、rabbitmq依赖)
(2)在config的配置文件application.yml配置rabbitmq和bus
(3)在特定的微服务模块(客户端)的pom.xml中加入依赖(例如base),加入bus依赖、rabbitmq依赖、监听器依赖
(4)修改客户端的属性配置文件(注意:这里的属性配置文件已经上传到gitee中去了,所以需要在gitee中编辑修改),加入消息队列依赖
注意:完成以上配置以后,即可完成属性配置文件中的配置文件的实时更新,但是只限于系统固有信息的修改有效,如果是自定义的配置信息,修改不会实时更新,为了解决这个问题,需要在每个控制层的上面加入@RefreshScope注解
(5)自定义配置文件的实时更新。以后养成习惯,在控制层上面加注解时候,不管能不能用到,都将@RefreshScope注解加上即可
SpringCloud核心内容之 Spring Cloud Bus(消息总线)
最新推荐文章于 2022-09-10 11:33:45 发布