Bus 消息总线

编程入门 行业动态 更新时间:2024-10-25 22:26:20

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

Bus 消息总线

代码:.git 

简介: 

  • spring cloud bus 使用轻量级的消息中间件将分布式的节点连接起来,可以用于广播配置文件的更改或者服务的监控管理。关键的思想就是,消息总线可以为微服务做监控,也可以实现应用程序之间相互通信。
  • spring cloud Bus 可选的消息组件包括 RabbitMQ和Kafka
  • 经常和config一起使用,通过cmd curl发送完post请求后,只能一个客户端刷新得到最新配置文件,如果客户端多时,就很麻烦,bus可以解决这个问题,只需要发送一跳post请求,所有客户端都能通过刷新得到最新外部配置文件。 

这里是承接Config 分布式配置中心文章,解决文章中遗留的发一次请求只能一个client更新的到最新的配置文件。

bus搭建

将config-consumer改造为client

config-provider的bootstrap.yml复制到config-consumer

#bootstrap优先级更高#配置config-server地址
#配置获取配置文件的名称等信息spring:cloud:config:#配置config-server地址#uri: http://localhost:9527name: config #文件名profile: dev #开发环境label: master #分支#从注册中心去寻找config-server地址discovery:enabled: trueservice-id: CONFIG-SERVER#暴露端点
management:endpoints:web:exposure:include: refresh  # 或者 * 也可以代替,表示全部暴露不安全

OrderController注入

将获取到的外部配置文件输出到web

@RefreshScope@Value("${gao}")
private String gao;goods.setTitle(goods.getTitle()+"--"+gao);

导入pom.xml

        <!--feign--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!--        config client--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency>

运行:

编写bus

config-server

引入pom.xml

        <!--bus--><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>

添加配置

server:port: 9527spring:application:name: config-servercloud:config:server:git:uri: .git #远程仓库的地址label: master#配置rabbitmq信息rabbitmq:host: localhostport: 5672username: guestpassword: guestvirtral-host: /
eureka:client:service-url:defaultZone: http://localhost:8761/eureka # 注册#暴露bus的刷新点
management:endpoints:web:exposure:include: 'bus-refresh'

config-provider

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

bootstrap.yml

#bootstrap优先级更高#配置config-server地址
#配置获取配置文件的名称等信息spring:cloud:config:#配置config-server地址#uri: http://localhost:9527name: config #文件名profile: dev #开发环境label: master #分支#从注册中心去寻找config-server地址discovery:enabled: trueservice-id: CONFIG-SERVER#配置rabbitmq信息rabbitmq:host: localhostport: 5672username: guestpassword: guestvirtral-host: /#暴露端点
management:endpoints:web:exposure:include: refresh  # 或者 * 也可以代替,表示全部暴露不安全

config-consumer

pom.xml

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

bootstrap.yml

#bootstrap优先级更高#配置config-server地址
#配置获取配置文件的名称等信息spring:cloud:config:#配置config-server地址#uri: http://localhost:9527name: config #文件名profile: dev #开发环境label: master #分支#从注册中心去寻找config-server地址discovery:enabled: trueservice-id: CONFIG-SERVER#配置rabbitmq信息rabbitmq:host: localhostport: 5672username: guestpassword: guestvirtual-host: /#暴露端点
management:endpoints:web:exposure:include: refresh  # 或者 * 也可以代替,表示全部暴露不安全

application.xml

server:port: 9000eureka:instance:hostname: localhostclient:service-url:defaultZone: http://localhost:8761/eureka # 注册spring:application:name: config-consumer #设置当前应用的名称。将来会在eureka中application显示,将来需要使用该名称来获取路径# 开启feign对hystrix的支持
feign:hystrix:enabled: true

结果:

 发送后 client端  consumer和provider通过刷新就能获取到最新的外部配置文件

更多推荐

Bus 消息总线

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

发布评论

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

>www.elefans.com

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