SpringCloud笔记九:微服务消息总线Bus结合消息队列RabbitMQ
发布日期:2021-05-28 16:45:08 浏览次数:7 分类:技术文章

本文共 2793 字,大约阅读时间需要 9 分钟。

SpringCloud笔记九:微服务消息总线Bus结合消息队列RabbitMQ

文章目录

消息总线介绍和使用场景

  1. 配置中心问题

将配置中心存放到git仓库里面,好处有很多,但是仍然没有解决一个问题,当我们将系统部署以后,如果想修改配置里面的内容,如何在不重启的情况下仍然能应用新增的内容。显然这个问题没有实际的解决,那么配置中心几乎毫无意义。

消息总线就是为了解决这个问题的。

  1. 什么是消息

一个事件,需要广播或者单独传递给某个接口。

消息队列就是当有消息时,通知大家或相应人员,当相应人员接收到消息后就主动做对应动作。

消息队列RabbitMQ

  1. 参考文档

  1. RabbitMQ文档

使用Docker安装RabbitMQ

  1. 拉取镜像

docker pull rabbitmq:management

  1. 查看当前镜像列表

docker images

  1. 删除指定镜像

docker rmi IMAGE_ID (如果需要强制删除加 -f)

  1. 创建容器

docker run -d --name “myrabbitmq” -p 5672:5672 -p 15672:15672 rabbitmq:management

参数讲解:

run: 创建一个新的容器并运行一个命令
-d: 后台运行容器,并返回容器ID
-p: 端口映射,格式为:主机(宿主)端口:容器端口
–name=“rabbitmq”: 为容器指定一个名称

  1. RabbitMQ默认创建了一个 guest 用户,密码也是 guest, 如果访问不了记得查看防火墙,端口或者云服务器的安全组
    管理后台:http://127.0.0.1:15672
  2. 其他安装方式

消息总线整合配置中心

  1. 启动rabbitmq

docker run -d --name “rabbitmq” -p 5672:5672 -p 15672:15672 rabbitmq:management

rabbitmq默认使用5672端口

  1. config-client添加依赖
org.springframework.boot
spring-boot-starter-actuator
org.springframework.cloud
spring-cloud-starter-bus-amqp
  1. 官方文档

  1. 添加暴露端点配置

暴露全部监控信息

management:  endpoints:    web:      exposure:        include: "*"
  1. 添加rabbitmq配置
spring:  application:    name: product-service  output:    ansi:      enabled: ALWAYS  zipkin:    base-url: http://47.105.176.159:9411/  sleuth:    sampler:      probability: 1  cloud:    config:      discovery:        service-id: CONFIG-SERVER        enabled: true      profile: test      label: test  rabbitmq:    host: 47.xxx.176.xxx    port: 5672    username: guest    password: guest
  1. 需要刷新配置的地方需要添加注解

@RefreshScope

  1. 手动刷新配置,post方式,可以用postmen

http://localhost:8773/actuator/bus-refresh

动态刷新配置,在开发和测试环境使用,尽量少在生产环境使用。

  1. 要将application.yml修改为bootstrap.yml。否则不会成功。

  2. 配置中心架构图

配置中心架构图

1、发送post请求,用于更新配置refresh

2、server端接收到请求并发送给Spring Cloud Bus,总线会优先将消息推送到rabbitmq,或者kafka

3、rabbitmq会通过广播的方式推送给各个server端。

4、其他端获取到消息后,会请求配置端,申请获取最新配置。

5、配置中心通过git重新拉取配置

这里的rabbitmq的主要功能就是起到一个广播,通知其他客户端的作用,并没有传递什么配置信息。

总结客户端保留配置和需要引入的依赖。

  1. 需要引入的依赖
org.springframework.cloud
spring-cloud-config-client
org.springframework.boot
spring-boot-starter-actuator
org.springframework.cloud
spring-cloud-starter-bus-amqp
  1. git中新增配置信息
#服务的名称spring:  rabbitmq:    host: 47.105.176.159    port: 5672    username: guest    password: guest#暴露全部的监控信息management:  endpoints:    web:      exposure:        include: "*"
  1. 将application.properties修改为bootstrap.yml,并添加配置信息
#服务的名称spring:  application:    name: product-service   #指定从哪个配置中心读取  cloud:    config:      discovery:        service-id: CONFIG-SERVER        enabled: true      profile: dev      label: master#指定注册中心地址eureka:  client:    serviceUrl:      defaultZone: http://localhost:8761/eureka/
  1. 各个项目启动顺序

1、注册中心

2、配置中心

3、对应的服务,

4、启动网关

转载地址:https://blog.csdn.net/qq_33322074/article/details/106271872 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:SpringCloud笔记十:springCloud和Docker整合部署
下一篇:SpringCloud笔记八:分布式配置中心Config

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年02月29日 18时14分15秒