zoukankan      html  css  js  c++  java
  • Spring-cloud微服务实战【十】:消息总线Bus

      回忆一下,在上一篇文章中,我们使用了分布式配置中心config来管理所有微服务的配置文件,那这样有没有什么问题?有,那就是无法配置文件无法自动更新,当我的git服务器上的配置文件更新后,不能同步更新到config-server,需要config-server重启才能生效,这在生产环境下,肯定是不可以的,我们需要当git服务器的文件更新后,自动同步到config-server,并且config-server不需要重启就能获取到最新的配置,因此我们需要借助spring cloud bus消息总线来实现该功能.其实spring cloud bus 本质上是利用MQ(消息中间件,常用的是RabbitMQ或者kafka)实现消息的推送功能.

    spring cloud bus的使用

      上面我们说到spring cloud bus需要借助MQ,本文中我们借助RabbitMQ来实现该功能.首先需要我们在本机安装好RabbitMQ(安装过程就不再说了,大家发挥各自的聪明才智吧~),然后启动RabbitMQ:
    file
      以上打印信息说明已经启动好了,让我们登录网页版的控制台看一下,rabbitMQ控制台默认端口号15672:
    file
      出现该页面说明rabbitMQ已经成功启动了,大家可以用默认的账号密码guest/guest登录进去看一下:
    file
      然后我们将[dhp-micro-service-config-server]复制一份为[dhp-micro-service-config-bus-server]:
    file
      然后新增maven依赖:
    file
      配置文件我们改造一下,使用yml文件,并且新增rabbitMQ相关配置,并且由于需要暴露refresh的地址,因此方便起见直接使用星号表示暴露全部地址:
    file
      然后启动试一下:
    file
    file
      说明已经成功了,然后现在将[dhp-micro-eureka-server-config]复制一份为[dhp-micro-eureka-server-config-bus]:
    file
      然后新增maven依赖:
    file
      然后修改git服务器上的配置文件,新增rabbitMQ的相关配置,以及新增一些用于测试自动刷新的内容:
    file
      修改[dhp-micro-eureka-server-config-bus]代码,新增user.config的相关配置:
    file
      然后启动[dhp-micro-eureka-server-config-bus]:
    file
    file
      接下来我们测试一下自动刷新,首先修改git服务器上的用户相关信息:
    file
      然后再访问一下用户信息的地址:
    file
      嗯?什么情况?没有成功?是配置出现问题了吗?还是其他什么问题?其实不是的,我们说现在eureka-server作为config-server的一个消费者,通过rabbitMQ进行监听,现在config-server并没有发出消息通知,消费者自然不能接收到更新信号了,因此我们需要在在config-server手动发一个信号:
    file
      在1.X的版本时,可以直接使用GET请求访问,2.X版本只能使用POST请求,因此我们借助Postman来发送post请求:
    file
      此时再看一下userConfig信息:
    file
      这样自动刷新就成功了.但是生产环境不可能每次都需要我们手动发起请求,因此我们可以借助git的webhook的方式,自动帮助我们刷新:
    file
      这里的Payload URL填写我们的刷新地址即可,比如:
    file
      但是要注意这个地址必须是公网地址,否则公网访问不了不生效!

      自此,我们的整个微服务spring cloud就结束了,喜欢的童鞋们请赶紧收藏吧!

      本文的GitHub地址

    本文由博客一文多发平台 OpenWrite 发布!

  • 相关阅读:
    Java中四种XML解析技术
    Android ui utils简单实用的Android界面工具
    Android SAX解析xml文件
    Android SAX解析XML
    《Unix & Linux 大学教程》 第一、二章 学习笔记
    Eclipse设置背景色
    Java中getResourceAsStream的用法
    Android中asset文件夹和raw文件夹区别
    《Unix & Linux 大学教程》 第三、四章 学习笔记
    Android SAX解析实例教程
  • 原文地址:https://www.cnblogs.com/wukongbubai/p/12381394.html
Copyright © 2011-2022 走看看