下面是一个使用 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在服务之间发送和接收消息示例
- 普利制药:公司上市主体为海南普利制药股
- 【环球时快讯】WTA斯图加特大奖赛:郑钦
- 三穗县城镇生活垃圾无害化处理成效显著
- 伊朗外交部:伊朗总统与沙特国王发互访邀
- 图解丨聊聊“人造太阳”:做这个很难,也
- 市场营销前景如何发展的就业-每日动态
- 长沙水业集团3个“水务+光伏”发电项目并
- 全球实时:LPL官宣春转时间,圣枪哥去向
- 缠身龙可以吃什么_缠身龙|焦点速讯
- 南宁25个非遗项目有望“升级” 天天视点
- 国足6月份热身赛对手基本敲定,未来或有
- 装饰工作办公室的 10 个想法
- 张小泉:2022年实现收入8.26亿元 全球消息
- 新消息丨今晚四川盆地将有局地强对流天气
- Mysteel日报:西南型钢价格暂稳 市场谨慎
- 华为畅享 60X 正式发布!同档位最强大
- 全球头条:4月17日 建材类晚间行情分析
- 全球速读:证券账号不用了要不要注销
- 热议:上海:着力实体经济 推进全产业链
- 北京建筑大学公布今年招生政策,招生学院
- “阅读三味”打造党员冬训“幸福套餐”
- 世界新资讯:沪指早盘涨近1%创年内新高
- 七宗罪游戏中文版下载_七宗罪游戏中文补丁
- 全球看点:全是神将!詹姆斯拖后腿也高兴
- 开水壶可以煮鸡蛋么? 天天快播
- 纯碱盘面缺乏有效上涨驱动 短期近月合约
- 英超-厄德高破门萨卡失点 阿森纳连丢两
- 每日讯息!浙江文旅观察:杭州是文化消费
- 环球百事通!感恩家乡养育情 兴化乡贤出
- 生态环境部汪海洋:将全面开展地下水污染
- 【天天报资讯】Redis 数据类型及操作-Hy
- 我国长距离输氢技术获突破 一文解读氢能
- "全险"渐覆盖产粮大县 去年1.7亿户次农
- 环球快报:番禺硬菜上桌
- 焦点要闻:安装监控需要什么设备好_安装
- 【点赞】就在今晚,正式亮相!_快消息
- 5天5夜,投入3000余人,云南玉溪山火现已
- 莫斯科介绍短文-莫斯科介绍
- 焦点热讯:好用的图片查看_查看图片的软件
- 人社部规〔2017〕7号_人社部规2017 9号文件
- 今日最新!呼吸内科主要看什么病的_呼吸
- 前沿热点:中国最著名的十部电影:少林寺
- 【天天速看料】美媒:枪击事件已成为美国
- 【新要闻】房屋装修一般怎么付款
- 天天信息:方形脸戴什么眼镜好看 方形脸
- 天天资讯:里奇保罗:论戒指历史最佳是比
- 【世界新视野】第一次见这么统一的风向…
- 也门政府与胡塞武装启动大规模换俘行动
- 【独家】中国农业大学展开安全教育日活动
- 卡拉格:愤怒于利物浦放弃贝林厄姆,不解
- 环球百事通!教育惩戒权2022细则全文_教
- 天天看热讯:2023厦门第二十一届市运会运
- 芙蓉国评论:好评中国 为时代讴歌_环球
- 更靓更舒适!北滨路漫行步道“精装修”进
- 全球热文:宁德时代与58同城签署战略合
- 怎么将c盘文件移动到其他盘_如何将c盘的
- 热推荐:权威发布丨赋能进出口企业,建行
- 白毛掌仙人掌养殖方法(白毛掌仙人掌养殖
- 概念动态|迪普科技新增“数字水印”概念
- 北京建筑大学公布今年招生政策,招生学院
- “阅读三味”打造党员冬训“幸福套餐”
- 世界新资讯:沪指早盘涨近1%创年内新高
- 七宗罪游戏中文版下载_七宗罪游戏中文补丁
- 全球看点:全是神将!詹姆斯拖后腿也高兴
- 开水壶可以煮鸡蛋么? 天天快播
- 纯碱盘面缺乏有效上涨驱动 短期近月合约
- 英超-厄德高破门萨卡失点 阿森纳连丢两
- 每日讯息!浙江文旅观察:杭州是文化消费
- 环球百事通!感恩家乡养育情 兴化乡贤出
- 生态环境部汪海洋:将全面开展地下水污染
- 【天天报资讯】Redis 数据类型及操作-Hy
- 我国长距离输氢技术获突破 一文解读氢能
- "全险"渐覆盖产粮大县 去年1.7亿户次农
- 环球快报:番禺硬菜上桌
- 焦点要闻:安装监控需要什么设备好_安装
- 【点赞】就在今晚,正式亮相!_快消息
- 5天5夜,投入3000余人,云南玉溪山火现已
- 莫斯科介绍短文-莫斯科介绍
- 焦点热讯:好用的图片查看_查看图片的软件
- 人社部规〔2017〕7号_人社部规2017 9号文件
- 今日最新!呼吸内科主要看什么病的_呼吸
- 前沿热点:中国最著名的十部电影:少林寺
- 【天天速看料】美媒:枪击事件已成为美国
- 【新要闻】房屋装修一般怎么付款
- 天天信息:方形脸戴什么眼镜好看 方形脸
- 天天资讯:里奇保罗:论戒指历史最佳是比
- 【世界新视野】第一次见这么统一的风向…
- 也门政府与胡塞武装启动大规模换俘行动
- 【独家】中国农业大学展开安全教育日活动
- 卡拉格:愤怒于利物浦放弃贝林厄姆,不解
- 环球百事通!教育惩戒权2022细则全文_教
- 天天看热讯:2023厦门第二十一届市运会运
- 芙蓉国评论:好评中国 为时代讴歌_环球
- 更靓更舒适!北滨路漫行步道“精装修”进
- 全球热文:宁德时代与58同城签署战略合
- 怎么将c盘文件移动到其他盘_如何将c盘的
- 热推荐:权威发布丨赋能进出口企业,建行
- 白毛掌仙人掌养殖方法(白毛掌仙人掌养殖
- 概念动态|迪普科技新增“数字水印”概念
- 国轩高科董秘回复:公司海外投资项目将按
- 贾可:盘一盘当下新汽车发展的五大迷茫
- 当前观察:“琼”尽好物看消博|让国宝“
- 中老铁路开行国际旅客列车 昆明至万象间
- 深信服(300454)4月13日主力资金净买入1
- 法国和西班牙对ChatGPT展开调查 世界最资讯
- 电动拖把家用第一名_电动拖把
- 今天打开个税APP,我直接人麻了!
- 世界简讯:乔家大院重新开张_乔家大院暂停
- 中基协金融科技委员会2023年第一次工作会
- 天天关注:2023年4月13日黑龙江省玉米价
- 兄弟同圈,共襄大运!成都大运会“遇见重
- 白酒信仰,正在崩塌_天天看热讯
- 世界资讯:助力春耕备生产 不负农时不负春
- iOS 17新功能曝光:照抄安卓12|世界快资讯
- 通讯!索尼投资树莓派,共同开发边缘AI解
- 独家|齐翔腾达董事陈晖半年前已失联,或
- 舞剧《歌唱祖国》再现经典诞生历程
- 自贸港新视界 | 儋州嘉禾共享农庄创始
- 全球通讯!钨精矿价格暂稳 第一批开采指