上一节说到,我们利用组件SpringCloud Config可以实现集中式的管理配置文件、不同环境不同配置、以及动态化的配置更新,可以根据不同的环境进行部署;但是我们在实际操作中,更改yml配置之后,不重启微服务的情况下,是不能直接获取到更新信息的;
这里,SpringCloud Bus孕育而生,就可以来解决我们当前这个问题,使用该组件来实现配置的自动更新;
1、我们可以通过一张图来了解SpringCloud Bus的运行机制:
我们可以看到大致流程如下:
(1)我们在本地对配置文件进行更改之后,应该及时推送到我们的远程Git,进行远程库的更新;
(2)然后应该发起一个请求来告知我们的config客户端我们配置已经发生更新并且提交至远程库;
(3)config 客户端接收到请求后便可以利用我们的server从配置服务器(Git)中获取到更新的配置并且把配置已更新这个消息发送到消息总线;
(4)消息总线接收到信息后便把配置已更新这个消息发送给其他客户端;
(5)其他Config客户端接收到消息后,也可以从Config-Server中来获取到相应的更改的配置信息;
(6)这样一来,全部客户端均可接收到更新的配置信息。
关于ERlang、RabbitMQ的安装出现的问题:
(1)首先,我们要知道RabbitMQ是Erlang语言开发的,Erlang语言广泛用于并发或者是分布式系统的开发,在电信领域应用广泛,OTP(open telecom Platform)作为Erlang语言的一部分,包含了很多基于Erlang开发的中间件以及工具库,所以我们在安装RabbitMQ之前应该先安装OTP/Erlang,并且要求版本配对;
(2)其次,我们在安装完erlang之后需要对其进行环境变量的配置,这里我们出了一次错,是因为用户变量和系统变量中的配置冲突,故我们把用户变量中的配置清空(不用担心清空后这里会导致意想不到的错误,这里可以自行去百度“用户变量”、"系统变量"的区别),然后直接在系统变量中完成我们的环境变量填写(和配置jdk差不多):在系统变量中,我们新建一个ERLANG_HOME,并且在里面写上安装路径;
随后在系统变量path中写上**%ERLANG_HOME%\bin**,需要记得加分号
(3)配置完成后我们直接在cmd敲出命令:erl 若出现以下版本号说明安装已经配置环境变量成功;
对于RabbitMQ的安装,
(1)在拿到安装包后进行傻瓜式的安装即可,但是得注意在安装路径中应该注意不能有空格以及中文字符!!!并且安装不成功的情况下进行卸载一定得卸载干净!不能在未卸载的情况下对文件进行覆盖安装,不然会造成“服务名无效”这个错误;
2、在报错之后我们进行多方尝试才发现可能是电脑名中出现中文字符、以及卸载不彻底造成的错误(该报错说明安装不成功,电脑中没有该服务,我们可以通过到进程中观察是否有该服务来判断是否安装成功);
3、除了在运行窗口进行启动服务,我们也可以通过命令行的形式,但是一定记得要管理员身份运行cmd,不然也会报错
4、安装管理插件:我们可以通过安装插件从而在浏览器端方便的管理RabbitMQ,在该指定目录下的窗口下输入以下命令:rabbitmq-plugins.bat enable rabbitmq_management
5、于是,我们就可以在浏览器端通过端口号进入到RabbitMQ的管理页面;默认:http:localhost:15672;登录成功后初始账号为:guest/guest