第八节:消息总线

编程入门 行业动态 更新时间:2024-10-25 06:25:41

第八节:消息<a href=https://www.elefans.com/category/jswz/34/1769217.html style=总线"/>

第八节:消息总线

一、安装RabbitMQ
         参考链接:windows下 安装 rabbitMQ 及操作常用命令

                           RabbitMQ入门(一)——RabbitMQ的安装以及使用(Windows环境下)

二、基本思路
         基本思路就是,某个Client发送一个  刷新Git配置文件的请求。然后通过消息总线向其它服务器传播此通知,通知所有的服务器更新配置文件,从而使整个微服务集群都达到更新配置文件的目的。

        基本流程是:

         (1)PC端向 8882 Client 发送一个/bus/refresh请求,所以8882Client就会重新从8888端口的配置中心Config-server上获取最新的配置文件信息。

         (2)重新获取到配置文件信息后,8882端口将Git上的有最新配置文件的消息发送给消息总线。

         (3)消息总线通过消息中间件,例如RabbitMQ向其它微服务Client发送消息,所以其它微服务8881Client在收到通知后重新向配置中心请求最新的配置文件信息。

三、改造配置中心config-client
        3.1  导入消息总线依赖
 

        <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bus-amqp</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>

3.2  编写配置文件

        在bootstrap.properties中新增加RabbitMQ配置以及消息总线配置

#配置RabbitMQ
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest#消息总线配置
spring.cloud.bus.enabled=true
spring.cloud.bus.trace.enabled=true
management.endpoints.web.exposure.include=bus-refresh

 3.3  编写启动类

package com.safesoft.client;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
public class ApplicationClient {public static void main(String[] args) {SpringApplication.run(ApplicationClient.class, args);}
}

    3.4  为要被刷新从配置文件中的类增加@RefreshScope注解

@RestController
@RefreshScope
public class IndexController {@Value("${jay.label}")private String label;@RequestMapping("/hello")public String test() {return label;}
}

3.5  测试

        (1)首先开启8761的注册中心,开启8001的配置中心,开启两个Client,分别部署在8004与8005端口。

(2)访问:http://localhost:8004/hello,得到GIT的配置信息。访问http://localhost:8005/hello结果也一样。

 

(3)更新配置文件,并将其推送到GitHub上。再访问http://localhost:8004/hello看看效果。

        我录制了一张动图,详细展示了这个过程。

        起初的配置文件被我修改成了 test444444,目标将其改为test666666。

        修改GitHub上的数据并提交。然后通过POSTMAN发送http://localhost:8004/actuator/bus-refresh。也就是说,8004端口的数据先重新加载。然后通过RabbitMQ发送消息,通知部署在8005端口的微服务也要重新读取配置文件。

        测试的时候因为GitHub的网络延迟,还有消息总线通过RabbitMQ发送消息到别的服务器也要一点时间,所以部分操作有点慢,请各位看官耐心一下,大宇先说声抱歉了。

四、源码下载
         

         参考文章: 

         史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)(Finchley版本)
         

         参考文章: 

 

更多推荐

第八节:消息总线

本文发布于:2023-06-13 00:02:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/670325.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:总线   第八节   消息

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!