config分布式配置中心和服务总线bus

为什莫会引入config呢?看下图:

config分布式配置中心和服务总线bus_第1张图片

config分布式配置中心和服务总线bus_第2张图片 config含有客户端和服务端:

服务3344就是配置中心服务服务端:

config分布式配置中心和服务总线bus_第3张图片

创建3344服务步骤: 

config分布式配置中心和服务总线bus_第4张图片 pom.xml:config分布式配置中心和服务总线bus_第5张图片

启动类:config服务端要添加开启@EnableConfigServer 

config分布式配置中心和服务总线bus_第6张图片 

application.yml: 

config分布式配置中心和服务总线bus_第7张图片 

配置文件读取规则:下图

config分布式配置中心和服务总线bus_第8张图片

 config客户端配置:服务3355

config分布式配置中心和服务总线bus_第9张图片

config分布式配置中心和服务总线bus_第10张图片 

config分布式配置中心和服务总线bus_第11张图片 config分布式配置中心和服务总线bus_第12张图片

controller: 

config分布式配置中心和服务总线bus_第13张图片 理解:3344服务作为config的服务端,3344连接github;3355作为config的客户端连接3355;通过上述3355服务的测试接口,和3344服务调用结果一样。  关系就是3344找github,3355找3344

问题随之而来,分布式配置的动态刷新问题?

config分布式配置中心和服务总线bus_第14张图片

config分布式配置中心和服务总线bus_第15张图片 手动动态刷新的修改如下:步骤如下图一,然后需要运维人员再发送POST请求来刷新3355,即可:

config分布式配置中心和服务总线bus_第16张图片

config分布式配置中心和服务总线bus_第17张图片 config分布式配置中心和服务总线bus_第18张图片

 运维人员post请求:

config分布式配置中心和服务总线bus_第19张图片

到这里,就避免了客户端服务重启! 但是还不是最优化的最完美的方案,如果微服务有100个,岂不是要运维发送100次请求?

所以需要自动刷新,非上面的手动刷新:

config分布式配置中心和服务总线bus_第20张图片

 到这块就需要引入服务总线的概念了:

config分布式配置中心和服务总线bus_第21张图片

 自动刷新总共有两种方案:看下图,但是1不怎么靠谱,所以采用方案2:

 下面分别是方案1和2的思路流程图:

config分布式配置中心和服务总线bus_第22张图片

config分布式配置中心和服务总线bus_第23张图片 

开始改造:config服务端和客户端都需要引入RabbitMQ:

config分布式配置中心和服务总线bus_第24张图片 服务端3344改造: 

config分布式配置中心和服务总线bus_第25张图片

config分布式配置中心和服务总线bus_第26张图片 

客户端改造3355和3366一样:

config分布式配置中心和服务总线bus_第27张图片 

config分布式配置中心和服务总线bus_第28张图片 

运维人员在github中如果修改或者变更了配置文件,首先3344是直接连接github的,3344会自动变更对应的配置文件,此时经过上面的配置之后,只需要发送一次POST请求刷新3344就ok,3355和3366也会自动刷新过来最新的配置文件。 

还可以自定义进行刷新:下图

config分布式配置中心和服务总线bus_第29张图片

 第一个是全局通知,3355、3366都会刷新配置文件;第二个是局部刷新,只刷新了3355,其中config-client是服务名。

你可能感兴趣的:(SpringCloud)