美文网首页SpringCloud
spring cloud config 整合 RabbitMQ

spring cloud config 整合 RabbitMQ

作者: valentine_liang | 来源:发表于2018-11-25 18:24 被阅读172次

Valentine 转载请标明出处。

前言:如果项目多个服务使用了某个配置,当我们修改配置信息的时候,我们希望服务的配置也跟着修改,但是我们就不得不一个一个服务的发送POST请求http://xxx:xxx/bus/refresh,或者关闭服务重新打开。这是比较麻烦的。 所以我们在这里使用消息中间件来完成配置的更新问题。 

达到的目标: 当我们更新git仓库的配置信息的时候,所有使用了这个配置的服务都会刷新配置,实现分布式的动态配置

思路:我们的config-files配置文件中心,每修改一次文件(提交一次代码),就触发一个消息事件,发送消息到rabbitmq,然后监听了这个消息的客户机就发送http://xxx:xxx/bus/refresh的post请求,从而实现配置文件的动态刷新。

1、在本机安装RabbitMQ

安装教程:RabbitMQ安装教程深入了解RabbitMQ

2、搭建eureka :服务的注册与发现、config-server:配置中心、config-client:配置客户端、config-files:配置文件统一存放处

1、搭建eureka:服务的注册与发现,到spring项目官网,根据以下截图教程下载项目(注意本次教程的springboot版本选择的是1.5版本)

eureka的github地址,项目的搭建过程如下图指引

以下是EurekaServer类、application.yml配置(注意,本人修改过本项目的项目路径)

2、搭建config-server: 配置中心,也是到spring项目官网,根据以下截图教程下载项目

config-server项目的github地址,项目的搭建过程如下图指引

要注意的是,要在下载好的项目里面的pom.xml文件里面增加spring-cloud-starter-bus-amqp的依赖

application.yml的配置文件截图

其余的类比较多,所以就不阐述了,请到github下载项目源码观看。

3、搭建config-client: 配置客户端,到spring项目官网,根据以下截图教程下载和搭建项目,

config-client项目的github地址,项目的搭建过程如下图指引

在下载好的项目里面的pom.xml文件里面增加spring-cloud-starter-bus-amqp、httpclient、httpcore的依赖

config-client的application.yml的配置文件内容,如下图

其余的类比较多,所以就不阐述了,请到github下载项目源码观看。

4、config-files:配置文件统一存放处,config-files项目的github地址

3、在config-files项目设置Webhook(每当有提交的时候都会触发一次)

因为在本机运行,所以外网不能访问本机,这时候需要使用内网转发,下载地址和教程地址:https://ngrok.com/download。

下载好以后,打开ngrok,输入命令authtoken xxxxx(你的注册授权码),然后输入命令 ngrok http 7070,这样外网就能访问你的本机,如下图

这样就能实现了每提交一次代码,就能发送消息到消息队列,然后config-client端根据消息发送http://xxx:xxx/bus/refresh 请求就能动态刷新配置。

成功的结果演示:先启动eureka、config-server、config-client

刷新配置,之后

到此,文章终结。这是本人的第一篇技术分享,希望对各位有所帮助。如果有什么疑惑,请到github地址下载源码项目观看,https://github.com/ValentineLiang?tab=repositories

相关文章

网友评论

    本文标题:spring cloud config 整合 RabbitMQ

    本文链接:https://www.haomeiwen.com/subject/zsueqqtx.html