首页>资讯>正文
Spring Cloud Bus在服务之间发送和接收消息示例-消息
2023-04-16 22:31:03    来源:腾讯云

下面是一个使用 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() 方法中返回该属性的值。

关键词:

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

下面是一个使用SpringCloudBus和RabbitMQ的完整示例。在此示例中,我们将创建两个服务:ConfigService和Clien2023-04-16

全球热头条丨叙媒:极端组织在叙利亚哈马省发动袭击造成26人死亡

叙媒:极端组织在叙利亚哈马省发动袭击造成26人死亡2023-04-16

亲子巧手绘纸鸢,放飞童趣春意浓!泰安这家幼儿园的DIY风筝节真热闹|观察

泰安日报社·最泰安讯草长莺飞风正暖,春日筝飞正当时。近日,泰山区上高街道华新社区新时代文明实践站联合2023-04-16

中邮证券给予劲仔食品买入评级 产品矩阵不断优化 多元渠道持续发力_环球报资讯

中邮证券04月16日发布研报称,给予劲仔食品(003000 SZ,最新价:13 6元)买入评级。评级理由主要包括:1)2023-04-16

回顾性分析方法_今日热闻

今天来聊聊关于回顾性分析方法的文章,现在就为大家来简单介绍下回顾性分析方法,希望对各位小伙伴们有所帮2023-04-16

湖人首轮对阵灰熊完整比较,灰熊阵容更强?谁实际上更占据优势-全球最资讯

不论对哪支球队来说,这都不会是一场轻松的系列赛,湖人名列第七不过他们的实际水平不止第七,灰熊有着强大2023-04-16

英雄联盟进不去游戏界面怎么办_英雄联盟进不去游戏界面 世界微动态

1、先重启电脑用360安全卫士扫看行行行要安装叫装东西要重新安装lol。本文分享完毕,希望对大家有所帮助。2023-04-16

最新消息:读李镇西做最好的班主任有感 李镇西做最好的班主任在线阅读

今天来聊聊关于读李镇西做最好的班主任有感,李镇西做最好的班主任在线阅读的文章,现在就为大家来简单介绍2023-04-16

给男生送什么花好

如果是女生,送花,最好是送“长命百岁”,如果是学生就送“百岁”的花,代表着长命百岁之意;送手表代表着2023-04-16

阜新到通辽自驾游(阜新到通辽隔离吗)

1 阜新到通辽隔离吗驾车路线:全程约280 0公里起点:沈阳市1 沈阳市内驾车方案1)从起点向正南方向出发,行2023-04-16

反重力瑜伽有什么好处_反重力瑜伽好处有哪些-焦点热讯

欢迎观看本篇文章,小升来为大家解答以上问题。反重力瑜伽有什么好处,反重力瑜伽好处有哪些很多人还不知道2023-04-16

渣攻和渣攻_什么是渣攻

1、渣攻就是可以把小受玩弄了再随后丢弃转让的。2、根本就没把感情放在心上的当然不会都是杯具的!!听过渣2023-04-15

现在的弯梁车和踏板车除了外观,还有哪些区别?

现在的弯梁车和踏板车除了外观,还有哪些区别?我是骑士分享,摩圈一菜鸟。有小伙伴后台留言说“现在的弯梁2023-04-15

全球今亮点!携手共建文明城|塘沽街道开启环境“清整”模式(附视频)

为营造舒适、和谐、美丽的社区环境,进一步推进全国文明城区、国家卫生区长效化工作,4月14日,塘沽街道集2023-04-15

黄晓明公开认爱,揭开离婚原因:对不起,我们相爱了整整14年!_快播报

作者:斜杠先生来源:斜杠先生ID:isslash1如果说2022年度微博盛典要评选精彩画面。那么,黄晓明和李冰冰的2023-04-15

吉林省医疗机构制剂创新发展联盟成立大会在朝阳区召开|实时焦点

吉林省医疗机构制剂创新发展联盟成立大会在朝阳区召开2023-04-15

第三届消博会迎来首个公众开放日

央视网消息(新闻联播):今天(4月14日),第三届中国国际消费品博览会迎来首个公众开放日,单日入场人数2023-04-15

在合规使用中激活数据价值

【经济日报金观平:在合规使用中激活数据价值】公共数据流通应用,需统筹开放和安全,把安全贯穿数据开放全2023-04-15

中交集团主要领导拜会巴西总统卢拉|每日资讯

王彤宙感谢巴西政府长期以来给予中交集团的关心与支持,介绍了中交集团发展及在巴西业务开展情况。他表示,2023-04-15

【世界速看料】4月14日基金净值:东方红汇利债券A最新净值1.1047,涨0.15%

4月14日,东方红汇利债券A最新单位净值为1 1047元,累计净值为1 3747元,较前一交易日上涨0 15%。历史数据2023-04-15

新促会促消费活动助龙江农产品“大卖” 惠美乡村第二季活动隆重启动

为进一步探索消费新模式新业态,提升传统消费能级、全面助推黑龙江品牌农产品走向世界。在首季成功举办,取2023-04-14

环球新动态:打通医疗服务“最后一公里” 苏州高铁新城有了首个“家庭医生工作室”

苏报讯(记者李静)让辖区居民能够在家门口就享受到便捷、全面的医疗服务,昨天下午,相城区北河泾街道社区2023-04-14

中级经济师《人力资源》每日一练(2023.04.14)

中级经济师《人力资源》每日一练(2023 04 14),由经济师考试频道提供,查找更多中级经济师《人力资源》每日2023-04-14

焦点资讯:东北老工业基地吉林市为企业“解题” 提振发展信心

4月14日,吉林市召开服务企业高质量发展大会,为企业“解难题”。 凌西政 摄 中新网吉林4月14日电(记者石2023-04-14

滚动
资讯