Spring Cloud Bus在服务之间发送和接收消息示例_看点

下面是一个使用 Spring Cloud Bus 和 RabbitMQ 的完整示例。在此示例中,我们将创建两个服务:Config Service 和 Client Service。Config Service 负责存储应用程序的配置文件,Client Service 则使用这些配置文件来配置自身。


(资料图)

配置 Config Service

在 Config Service 中,我们需要将配置文件存储在 Git 存储库中,并启用 Spring Cloud Bus 和 RabbitMQ 支持。

首先,可以在 application.yml 文件中添加以下配置:

spring:  cloud:    config:      server:        git:          uri: https://github.com/your-git-repo/config-repo.git  bus:    enabled: true    trace:      enabled: true    rabbit:      enabled: true

在这个示例中,我们将 Config Service 配置为从 GitHub 存储库中加载应用程序的配置文件接下来,需要在 Config Service 中添加一个 REST 控制器,该控制器可以将 Spring Cloud Bus 消息发送到 RabbitMQ。可以使用以下代码来实现:

@RestControllerpublic class ConfigController {    private final BusRefreshListener busRefreshListener;    @Autowired    public ConfigController(BusRefreshListener busRefreshListener) {        this.busRefreshListener = busRefreshListener;    }    @PostMapping("/refresh")    public void refresh() {        busRefreshListener.refresh();    }}

在这个示例中,我们创建了一个 REST 控制器,该控制器将在 /refresh 路径上监听 POST 请求。当接收到该请求时,控制器将调用 BusRefreshListener bean 的 refresh() 方法,该方法将向 Spring Cloud Bus 发送一个刷新消息。

最后,我们需要在 Config Service 中添加一个 BusRefreshListener bean,该 bean 将在收到 Spring Cloud Bus 消息时触发配置文件的重新加载。可以使用以下代码来实现:

@Componentpublic class BusRefreshListener implements ApplicationListener {    private final ConfigurableApplicationContext context;    @Autowired    public BusRefreshListener(ConfigurableApplicationContext context) {        this.context = context;    }    @Override    public void onApplicationEvent(RefreshRemoteApplicationEvent event) {        context.refresh();    }    public void refresh() {        context.publishEvent(new RefreshRemoteApplicationEvent(this, "", ""));    }}

在这个示例中,我们创建了一个 BusRefreshListener bean,该 bean 实现了 ApplicationListener 接口,并在收到 RefreshRemoteApplicationEvent 事件时触发了应用程序上下文的刷新。我们还添加了一个 refresh() 方法,该方法将创建一个新的 RefreshRemoteApplicationEvent 事件,并将其发布到应用程序上下文中。

配置 Client Service

在 Client Service 中,我们需要添加一个依赖于 Config Service 的组件,并在收到 Spring Cloud Bus 消息时重新加载配置文件。

可以在 application.yml 文件中添加以下配置:

spring:  cloud:    config:      uri: http://localhost:8888      name: client-service  bus:    enabled: true    trace:      enabled: true    rabbit:      enabled: true

在这个示例中,我们将 Client Service 配置为使用 Config Service 中存储的配置文件。我们还启用了 Spring Cloud Bus 和 RabbitMQ 支持。

最后,我们需要在 Client Service 中添加一个 RefreshScope bean,该 bean 将在收到 Spring Cloud Bus 消息时重新加载应用程序的配置文件。可以使用以下代码来实现:

@Component@RefreshScopepublic class ConfigComponent {    @Value("${message:Hello World!}")    private String message;    public String getMessage() {        return message;    }}

在这个示例中,我们创建了一个 ConfigComponent bean,该 bean 带有一个 @RefreshScope 注解,以便它可以在收到 Spring Cloud Bus 消息时重新加载。我们还将一个名为 message 的属性注入到该 bean 中,并在 getMessage() 方法中返回该属性的值。

关键词:

前5月全国快递业务量409.5亿件 同比增长3.2%

国家邮政局公布5月邮政行业运行情况。1月~5月,邮政行业业务收入(不包括邮政储蓄银行直接营业收入)累计完成5317 8亿元,同比增长5 9%;业务

工人日报 2022-06-20

各行业工资单出炉!IT类最赚钱,还有这些钱景喜人

  中新经纬11月24日电 (张澍楠)虽说三百六十行,行行出状元,但行业之间的差距,仍然很大。究竟什么行业“最香”?被视为“高富帅”的金

2021-11-24

“狗咬人”事件当事人被撤职 多名干部被问责

  新华社郑州11月23日电(记者冯大鹏)在“狗咬人”舆情发酵后,23日晚,河南安阳通报了对涉“狗咬人”事件责任单位和责任人的处理决定。 

2021-11-24

北京朝阳区来广营华贸城7号院6号楼解除管控

  11月23日晚,朝阳区来广营地区清苑路第五社区华贸城7号院6号楼正式解除管控。  11月23日,华贸城7号院6号楼583户管控居民进行了第四

2021-11-24

大连市将4个中风险地区调整为低风险地区

  11月23日大连市新冠肺炎疫情防控总指挥部发布,大连市严格落实新冠肺炎疫情防控各项措施,至2021年11月23日24时,大连市庄河市城关街道

2021-11-24

云南哀牢山4名遇难地质队员遗体已移交其所在单位

  根据云南省普洱市哀牢山 "11·15 "联合指挥部通报,2021年11月23日21时50分,4名遇难人员遗体已移交其所在单位。 【编辑:叶攀】

2021-11-24

宁夏10年为农村创业妇女发放创业担保贷款超138亿元

  中新网银川11月23日电 (李佩珊 姚舒玲)“在宁夏,每6个农村妇女中就有1个接受过创业担保贷款项目的资金支持。”11月23日,宁夏妇联党

2021-11-24

前5月全国快递业务量409.5亿件 同比增长3.2%

国家邮政局公布5月邮政行业运行情况。1月~5月,邮政行业业务收入(不包括邮政储蓄银行直接营业收入)累计完成5317 8亿元,同比增长5 9%;业务

工人日报 2022-06-20

各行业工资单出炉!IT类最赚钱,还有这些钱景喜人

  中新经纬11月24日电 (张澍楠)虽说三百六十行,行行出状元,但行业之间的差距,仍然很大。究竟什么行业“最香”?被视为“高富帅”的金

2021-11-24

“狗咬人”事件当事人被撤职 多名干部被问责

  新华社郑州11月23日电(记者冯大鹏)在“狗咬人”舆情发酵后,23日晚,河南安阳通报了对涉“狗咬人”事件责任单位和责任人的处理决定。 

2021-11-24

云南哀牢山4名遇难地质队员遗体已移交其所在单位

  根据云南省普洱市哀牢山 "11·15 "联合指挥部通报,2021年11月23日21时50分,4名遇难人员遗体已移交其所在单位。 【编辑:叶攀】

2021-11-24

宁夏10年为农村创业妇女发放创业担保贷款超138亿元

  中新网银川11月23日电 (李佩珊 姚舒玲)“在宁夏,每6个农村妇女中就有1个接受过创业担保贷款项目的资金支持。”11月23日,宁夏妇联党

2021-11-24

第三届拉萨市旅游行业服务技能大赛决赛举行

  中新网拉萨11月23日电 (记者 冉文娟)第三届拉萨市旅游行业服务技能大赛决赛11月23日精彩举行。百余名选手经过层层选拔,经历初赛、网

2021-11-24

聚焦解决人兽冲突 东北虎豹国家公园启动专项行动

中新网长春11月23日电 (郭佳 吴林锡)东北虎豹国家公园23日全面启动2021-2022年今冬明春清山清套·打击乱捕滥猎专项行动。该行动旨在确保

2021-11-24
x 广告
x 广告
x 广告

Copyright   2015-2022 太平洋仓储网版权所有  备案号:豫ICP备2022016495号-17   联系邮箱:93 96 74 66 9@qq.com