前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Cloud Bus

Spring Cloud Bus

作者头像
星哥玩云
发布2022-09-15 14:30:11
3630
发布2022-09-15 14:30:11
举报
文章被收录于专栏:开源部署

1、Spring Cloud Bus概述

Spring Cloud Bus主要用于管理和传播分布式项目中的消息,它利用消息中间件的广播机制传播消息。它通过轻量消息代理连接各个分布点;通过分布式的启动器对Spring Boot应用进行扩展;用Amqp消息代理作为通道来建立应用之间的通信频道。它目前支持Kafka和RabbitMQ。

2、用Spring Cloud Bus 刷新配置信息

2.1、添加服务器端的依赖和配置,并启用支持

2.1.1、添加依赖
代码语言:javascript
复制
        <!--Spring Cloud Config依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
        <!--Spring Cloud Bus依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-bus</artifactId>
        </dependency>
        <!--Rabbtimq依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
        </dependency>
2.1.2、添加配置

在配置文件中添加对Spring Cloud Bus、Bus跟踪和Bus刷新端点的支持

代码语言:javascript
复制
spring.application.name=config-server
server.port=50027
# 配置git仓库的地址
spring.cloud.config.server.git.uri=https://github.com/lingfengxeon/spring-config
# git仓库地址下的相对地址,可以配置多个,用,分割。
spring.cloud.config.server.git.search-paths=config repositories
# git仓库的账号
username=
# git仓库的密码
password=
#启用Bus支持
spring.cloud.bus.enabled=true
#启用Bus的trace跟踪支持
spring.cloud.bus.trace.enabled=true
#启用Bus的刷新端点
management.endpoints.web.exposure.include=bus-refresh
2.1.3、启用配置支持

在启动类中添加注解@EnableConfigServer以支持Config Server

2.2、添加客户端的依赖和配置,并启用支持

2.2.1、添加依赖
代码语言:javascript
复制
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--Spring Cloud Config 依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <!--Spring Cloud Bus依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-bus</artifactId>
        </dependency>
        <!--Rabbtimq依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
        </dependency>
        <!--Actuator的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
2.2.2、添加配置

在bootstrap.properties中添加Spring Cloud Bus及跟踪支持

代码语言:javascript
复制
#启用Bus支持
spring.cloud.bus.enabled=true
#启用Bus的跟踪支持
spring.cloud.bus.trace.enabled=true

在application.properties中添加Spring Cloud Bus端点的刷新支持

代码语言:javascript
复制
management.endpoints.web.exposure.include=bus-refresh
2.2.3、添加更新位置

在控制器类上添加注解@RefreshScope,否则客户端在接收到服务器端的更新消息后不知道更新到什么位置

代码语言:javascript
复制
@RestController
@RefreshScope//自动刷新
public class HelloController {

    //获取app的版本
    @Value("${app.version}")
    private String version;

    //获取端口号
    @Value("${server.port}")
    private String port;

    //获取Server端参数message值
    @Value("${message}")
    private String message;

    @GetMapping("/hello")
    public String hello(){
        String str="version:"+this.version+" port:"+this.port+message;
        return str;
    }
}

2.3、启动并刷新客户端的配置

2.3.1、启动客户端

访问RabbitMQ的管理界面http://localhost:15672

1589388975950.png
1589388975950.png
2.3.2、刷新客户端配置信息

步骤:

1、修改配置文件,然后将其发布到Git中

代码语言:javascript
复制
app.version=dev
message=Spring Cloud Config
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
server.port=50029

2、访问:http://localhost:50028/hello

15893895121942381275.png
15893895121942381275.png

3、使用POST方式提交空消息到http://localhost:50028/actuator/bus-refresh

1589389624414.png
1589389624414.png

4、访问:http://localhost:50028/hello

1589389667329.png
1589389667329.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、Spring Cloud Bus概述
  • 2、用Spring Cloud Bus 刷新配置信息
    • 2.1、添加服务器端的依赖和配置,并启用支持
      • 2.1.1、添加依赖
      • 2.1.2、添加配置
      • 2.1.3、启用配置支持
    • 2.2、添加客户端的依赖和配置,并启用支持
      • 2.2.1、添加依赖
      • 2.2.2、添加配置
      • 2.2.3、添加更新位置
    • 2.3、启动并刷新客户端的配置
      • 2.3.1、启动客户端
      • 2.3.2、刷新客户端配置信息
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档