资讯: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() 方法中返回该属性的值。
标签:
-
16
2023-04全球简讯:微粒贷借款逾期1个月多久会上征信
网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后上报给征信机构,因为有些借贷机构可 -
16
2023-04环球播报:海蓝之谜精粹 海洋之谜
今天来聊聊关于海蓝之谜精粹,海洋之谜的文章,现在就为大家来简单介绍下海蓝之谜精粹,海洋之谜,希望对各位小伙伴们有所帮助。 -
16
2023-04【环球新要闻】知心话儿
1、《知心话儿》是曾静演唱的歌曲。2、李红伟作词。3、白天作曲。 -
15
2023-04环球速递!《黑暗荣耀》加持人气飚升,郑星一将首次担纲戏剧男主角
韩国演员郑星一(又译郑成日)因演出韩剧《黑暗荣耀》河度领一角,人气直线上升,剧中高冷、成熟的知性总裁形象,深受广大剧迷喜爱,而凭借《 -
15
2023-04太极生两仪两仪生四象四象生八卦图 太极生两仪两仪生四象全局
今天来聊聊关于太极生两仪两仪生四象四象生八卦图,太极生两仪两仪生四象全局的文章,现在就为大家来简单介绍下太极生两仪两仪生 -
15
2023-04上海将建车规级芯片设计和中试平台 解决中小企业研发难题
财经网汽车4月15日讯据澎湃新闻报道,上海市经济和信息化委员会副主任汤文侃今日在上海汽车芯谷·全球(首届)汽车芯片产业峰会上表示,上海将 -
15
2023-04天天日报丨耗子尾汁是什么梗怎么回复_耗子尾汁是什么梗
欢迎观看本篇文章,小勉来为大家解答以上问题。耗子尾汁是什么梗怎么回复,耗子尾汁是什么梗很多人还不知道,现在让我们一起来看 -
15
2023-04山东省高唐县发布雷雨大风蓝色预警
山东省高唐县发布雷雨大风蓝色预警 -
15
2023-04嘉得力2022年净利2191.46万同比增长43.67% 内控和费用管理加强
挖贝网4月15日,嘉得力(831992)近日发布2022年年度报告,报告期内公司实现营业收入127,372,401 19元,同比增长2 66%;归属于挂牌公司股东的 -
15
2023-04世界观热点:瓯海区人民政府领导班子 瓯海区人民政府
今天来聊聊关于瓯海区人民政府领导班子,瓯海区人民政府的文章,现在就为大家来简单介绍下瓯海区人民政府领导班子,瓯海区人民政 -
15
2023-04当前讯息:立陶宛前锋图贝利斯宣布参加NBA选秀 大三场均20+9预计次轮被选中
据选秀专家JonathanGivony报道,来自立陶宛的亚利桑那大学前锋阿祖勒斯-图贝利斯宣布参加2023年NBA选秀。图贝利斯出生于2002年3月22日, -
15
2023-04泡椒凤爪的家常做法最正宗的_泡椒凤爪的家常做法
1、前言简单好做材料主料:凤爪500克、盐35克、味精3克、糖10克、黄酒10、白醋5克、洋葱半个、野山椒一袋、鲜花椒适
苹果考虑将iPhone系列进一步延伸 2024年上市?
卷出一块好曲屏 真我10系列新品发布会举行
英国猴痘病例数预计将大幅上升
上海:视情适当延长毕业生在校生身份时间
国家电网确定新型电力系统科技攻关十大重点项目
比亚迪发布CTB电池车身一体化技术
商务部:坚定致力于实现全面、高水平的亚太自贸区
中办国办印发《意见》 推进实施国家文化数字化战略
初夏看市场:“菜篮子”产品生产供应充足 蔬菜在田面积达9877.2万亩
上海浦东重点生产企业复工复产超1100家
-
1
Intel最新处理器Arrow-S曝光 最高可达24核
-
2
配置拉满的电竞神机 雷神ZERO2023大黄蜂发布
-
3
真我10Pro系列发布 首发量产2160Hz超高频调光技术
-
4
阿富汗塔利班组建正规军
-
5
萨赫勒地区反恐形势面临新变数
-
6
北约北扩加剧欧洲安全风险
-
7
贵州毕节七星关区百所学校创办百个“红军班”
-
8
湖北省孝感军分区组织军地联合应急救援研究性演练
-
9
青藏高原等区域将新设一批国家公园
-
10
河北省承德军分区退役军人担纲教练主力