当前位置: 首页>行业 >

【世界播资讯】Spring Cloud Bus在服务之间发送和接收消息示例

来源: 腾讯云 | 时间: 2023-04-17 17:35:37 |

下面是一个使用 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和Clien

2023-04-17

环球播报:港圈“斯文败类”天花板成功洗白?!网友:对不起,我就喜欢坏的

最近,吴启华在深圳看豪宅的新闻被港媒疯传,一口一个“楼王”。据闻,他手上已有6套物业,40只劳力士,只只都80w起跳。鲁豫听了都头大:你算

2023-04-17

环球滚动:工程施工形象进度表_工程形象进度怎么写

1、工程形象进度就是用文字(结合实物量)或百分比简明扼要地反映已施工程的形象部位和进度情况。2、它是考核施工单位完成施工

2023-04-17

当前资讯!eBay汽摩配推出第二季度高潜力车型促销活动

4月17日消息,为了支持大中华区卖家进一步拓展欧洲各国及澳大利亚市场的汽摩配业务,eBay推出2023Q2汽摩配欧洲及澳大利亚高潜力车型促销活动,

2023-04-17

信息:海尔生物医疗旗下鸿鹄航空科技获科技型、创新型中小企业两项认定

近日,青岛市科学技术局、青岛市民营经济发展局分别公示了青岛市2023年第二批拟入库科技型中小企业名单、2023年创新型中小企业名单。海尔生物

2023-04-17

【环球新视野】不设区的市每几年举行一次_不设区的市

1、全国哪五个不设区的地级市一般的地级市,都有设市辖区、辖县或代管县级市,但是国内有5个城市比较特殊

2023-04-17

今日热文:圣诞精灵化妆风格

做圣诞精灵妆很容易。节日季最有趣的事情之一就是有机会盛装打扮。有时是花哨的办公室圣诞派对,有时是与朋友的愚蠢聚会,您有机

2023-04-17

环球视点!周六福铂金多少钱一克(2023年04月17日)参考价格

周六福铂金多少钱一克(2023年04月17日)每日更新

2023-04-17

当前通讯!苏丹喀土穆再次发生激烈战斗

苏丹喀土穆再次发生激烈战斗状态:04 17 202304:09a m连续第二天,苏丹军队和准军事集团快速支援部队发生激战。双方都不愿意谈判。至少有83人

2023-04-17

当前播报:冯功:30 秒懂车《懂车影业》启程 致胜场景化营销

——ZAKER,个性化推荐热门新闻,本地权威媒体资讯

2023-04-17

世界快看:Redis 数据类型及操作-HyperLogLog

HyperLogLog是一种概率性数据结构,用于估计一个集合中元素的数量。相比于使用传统的数据结构如Hash表存储元素,使用HyperLogLog可以显著地减少

2023-04-17

天天最新:燕京啤酒2022营收132亿、英国精酿厂破产数创新高

近期消费大事件,新鲜事儿起底大爆料!1、燕京啤酒2022营收132亿近日,燕京啤酒(000729 SZ)发布2022年度业绩报告,报告期内,公司实现营业收

2023-04-17

当前滚动:m2是什么意思通俗讲_m2是什么意思

1、管理职位从M1开始。2、最高位是M8,依次是主管、经理、总监、副总裁、执行总裁 副董事长、董事长。以上就是【m2是什

2023-04-17

每日热讯!继续播放莫菁11_你知道莫菁的近况吗

1、嫁给福建一个小老板了。2、目前已经改名了。3、不叫莫菁了。本文分享完毕,希望对大家有所帮助。

2023-04-17

全球今热点:大同市气象局发布沙尘蓝色预警【Ⅳ级/一般】【2023-04-16】

大同市气象局发布沙尘蓝色预警【Ⅳ级 一般】【2023-04-16】

2023-04-16

【环球速看料】“送法下乡”暖民心 普法宣传零距离

为进一步加大普法宣传力度,提高群众的法律意识,以法治助力乡村振兴,4月15日上午,新疆和田市人民法院法官结合“宪法法律宣传月”活动,深入

2023-04-16

世界通讯!奥维尔号_奥尔号

1、亚当是一种树的名称,树体坚不可摧,是造船的上等材料。亚当树数量稀少,全世界也就那么几颗,其树枝在市场上的价格非常昂贵

2023-04-16

全球信息:本田mpv有哪几款(本田mpv有哪几款多少钱)

本田mpv有哪几款?本田mpv有哪几款?本田mpv有奥德赛、艾力绅和奥德赛锐·混动三款以下是扩展资料:1 奥德赛:奥德赛是本田公司推出的一款车于

2023-04-16

全球聚焦:斯匹兹卑尔根群岛_关于斯匹兹卑尔根群岛简介

1、斯瓦尔巴群岛(Svalbard又译斯瓦尔巴特、斯匹次卑尔根群岛)是挪威的属地,位于北冰洋上,巴伦支海和格陵兰海之

2023-04-16

精选!创5大纪录!NBA头号黑马击碎魔咒,现场球迷沸腾,库里沮丧离场

北京时间4月16日,NBA季后赛国王主场126-123击败勇士。此役,国王的肯塔基双星福克斯和蒙克各轰30+合砍70分,成为球队取胜的关键。而本场比赛

2023-04-16

资讯

花式避暑添夏日趣味 热浪滚滚燃高温经济

防晒、遮阳、冰饮,冲冲冲!西瓜、外卖、空调,不能停!多地持续的高温天气不仅贡献了很多热搜,也助燃了夏日经济。这其中,既有人们熟悉的传

2022-08-08     
天津津门虎队教练于根伟:机会来了要冷静

天津津门虎队明天将迎来中超联赛第五轮比赛,未尝一胜的现实也让全队上下倍感压力。昨天,主教练于根伟在谈及全队问题时表示:球员们在完成

2022-06-20     
北京推出14条秋游文化线路

金秋时节,北京市文化和旅游局以赏银杏品文化为主题,推出14条“叶落的季节——漫步北京赏银杏品文化主题线路”,邀市民和游客以步行、骑行

2021-10-27     
基因编辑发力 培育高质量人源化供体猪

此次人体试验,仅仅验证了基因编辑猪克服异种器官移植的超急性排斥反应,还需解决延迟性排斥反应、消耗性血栓等问题。但通过这次试验,能更

2021-10-27     
中国经济高质量发展步伐稳健 长期向好基本面未变

在全球疫情走势和经济走势趋于复杂的背景下,中国经济巨轮将驶向何方,举世关注。2020年10月26日至29日,党的十九届五中全会在京举行,明确

2021-10-27     
南美解放者杯决赛允许近4.5万观众入场

南美洲足联主席多明格斯25日与今年解放者杯决赛对阵的两支俱乐部负责人会晤,宣布决赛现场观众人数增加到球场容量的75%,即近4 5万人。今年

2021-10-27