门户网站的三个基本特征,代理注册公司流程和费用,妇产科医生免费咨询,网站建设和微信小程序1.什么是总线#xff1f; 我们在微服务的项目中#xff0c;通常会构建一个共同的消息主题#xff0c;然后需要的服务可以连接上来#xff0c;该主题中产生的消息会被监听和消费#xff0c;这种我们称为消息总线。 SpringCloud Bus 配合SpringCloud Config使用可以实现配置…1.什么是总线 我们在微服务的项目中通常会构建一个共同的消息主题然后需要的服务可以连接上来该主题中产生的消息会被监听和消费这种我们称为消息总线。 SpringCloud Bus 配合SpringCloud Config使用可以实现配置的动态刷新。
2.两种实现方式 Bus目前支持RabbitMQ和Kafka。 第一种就是我们利用/bus/refresh先触发一个客户端获取最新配置然后由此客户端发送消息给总线从而传播去修改其他的客户端配置。 第二种就是利用/bush/refresh去触发服务端(Config Server)配置的暴露bus刷新配置的端点(bus-refresh)然后由服务端发送消息给总线从而传播去刷新所有客户端的配置。 显然我们最好选择第二种原因有以下两点 客户端服务模块本身是业务模块不应该承担发送消息的职责。 破坏了客户端各微服务的对等性。
3.整体流程梳理 初始架构就是服务端连接git要从git上读配置客户端服务连接服务端服务要从服务端上读配置然后服务端和客户端都要添加消息总线的支持这是上图的(1)(2)。此时运维人员在git上修改了配置(3)并发送POST请求总线刷新给服务端(4) 此时服务端就发送消息给消息总线(5)所有客户端就监听到了事件消息(6)然后去服务端读取最新的配置即可(7)。 如果我们不想通知全部的客户端只想定点通知某一个客户端我们只需要修改Post请求即可例如