全球新资讯:使用 Spring Cloud Bus 和 Spring Cloud Stream 集成实现基于消息的事件驱动
基于消息的事件驱动是一种常见的微服务架构设计模式,它将不同的微服务之间通过消息进行通信,实现松耦合、高可伸缩性和高可靠性。在这种架构下,每个微服务都是独立的,它们可以在消息传递的过程中进行异步操作,这使得整个系统的性能得到了很大的提升。
在 Spring Cloud 中,我们可以使用 Spring Cloud Bus 和 Spring Cloud Stream 集成来实现基于消息的事件驱动。Spring Cloud Bus 是一个消息总线,它可以在微服务之间传递消息,可以将所有微服务视为一个整体,向所有微服务广播消息或向指定的微服务发送消息。Spring Cloud Stream 是一个消息驱动的微服务框架,它可以轻松地将消息通道与微服务进行集成。
(资料图片)
准备工作
首先,我们需要在 pom.xml 文件中添加以下依赖:
org.springframework.cloud spring-cloud-starter-bus-amqp org.springframework.cloud spring-cloud-stream-binder-rabbit
这些依赖将会引入 Spring Cloud Bus 和 Spring Cloud Stream 的相关库,并且使用 RabbitMQ 作为消息代理。如果你想使用其他消息代理,可以根据实际需求进行修改。
创建消息通道
在这个例子中,我们将创建一个名为 myChannel 的消息通道,用于在微服务之间传递消息。在创建消息通道之前,我们需要在 application.yml 文件中添加以下配置:
spring: cloud: stream: bindings: myChannel: destination: myChannel
这个配置将创建一个名为 myChannel 的消息通道,并将它绑定到 RabbitMQ 的 myChannel 队列上。现在,我们可以在代码中使用 @Input 和 @Output 注解来定义输入和输出消息通道了。
public interface MyChannel { String INPUT = "myInput"; String OUTPUT = "myOutput"; @Input(INPUT) SubscribableChannel input(); @Output(OUTPUT) MessageChannel output();}
这个接口定义了一个名为 MyChannel 的消息通道,其中包括一个名为 myInput 的输入消息通道和一个名为 myOutput 的输出消息通道。
发布消息
在这个例子中,我们将创建一个名为 MyController 的控制器类,该类将发布一个名为 MyMessage 的消息到 myOutput 消息通道上。
@RestControllerpublic class MyController { @Autowired private MessageChannel output; @PostMapping("/send") public void sendMessage(@RequestBody MyMessage message) { output.send(MessageBuilder.withPayload(message).build()); }}
这个控制器类注入了名为 output 的 MessageChannel,用于向 myOutput 消息通道发送消息。在 sendMessage 方法中,我们通过 MessageBuilder 创建一个名为 message 的 MyMessage 消息,然后通过 output.send 方法将这个消息发送到 myOutput 消息通道上。
处理消息
在这个例子中,我们将创建一个名为 MyListener 的监听器类,该类将监听 myInput 消息通道上的消息,并将消息打印到控制台上。
@EnableBinding(MyChannel.class)public class MyListener { @StreamListener(MyChannel.INPUT) public void handleMessage(MyMessage message) { System.out.println("Received message: " + message); }}
这个监听器类使用 @EnableBinding 注解将 MyChannel 消息通道绑定到 Spring Cloud Stream 上。在 handleMessage 方法中,我们使用 @StreamListener 注解监听 myInput 消息通道上的消息,当有消息到来时,Spring Cloud Stream 将自动将消息转换为 MyMessage 类型,并将其传递给 handleMessage 方法进行处理。在这个例子中,我们只是简单地将消息打印到控制台上,你可以根据实际需求进行修改。
运行测试
现在,我们已经创建了消息通道、发布了消息和处理了消息,我们可以启动应用程序并测试它了。首先,我们需要在终端窗口中启动 RabbitMQ,执行以下命令:
cssCopy codedocker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
这个命令将启动一个名为 rabbitmq 的容器,并将其映射到本地主机的 5672 和 15672 端口上。现在,我们可以启动应用程序并访问 http://localhost:8080/send发送消息了。在控制台中,你应该可以看到类似下面的输出:
Received message: MyMessage{id=1, content="Hello, world!"}
这表明消息已经成功传递到了 myInput 消息通道,并被 MyListener 监听到并处理了。
标签:
相关阅读
-
全球新资讯:使用 Spring Cloud Bus...
基于消息的事件驱动是一种常见的微服务架构设计模式,它将不同的微... -
天天快消息!Python面向对象编程-反射
在Python中,反射是一种动态访问和修改对象属性和方法的机制。通过... -
【天天速看料】国际首个HMO检测团标发布...
近日,《婴幼儿配方乳粉中7种母乳低聚糖含量的测定-液相色谱质谱法... -
【环球热闻】“东数”实现“西算”要迈...
ChatGPT大热,对于算力的讨论和布局也随之多了起来。因为不管人工智... -
带屏幕的真无线耳机:JBL TOUR PRO 2...
真无线耳机大同小异的今天,行业发展已经遇到了很大瓶颈,不过JBL发... -
今日热门!周杨青的简介个人资料(周杨青...
1、周扬青(GraceChow),1988年9月12日出生于北京,中国内地网络红... -
普安县气象台继续发布干旱橙色预警信号...
普安县气象台继续发布干旱橙色预警信号【Ⅱ 严重】 -
十二载助学 梦想的“炭火”生生不息
2023年4月初,兴华助学团队到受助学校、受助学生家中走访。清华大学... -
天天通讯!瓯海供电分局:电力“及时雨...
“多亏你们及时帮忙安装抽水表计,送来了‘及时雨’,这下我的400亩... -
【天天聚看点】小赢卡贷网贷7000逾期还...
可能会。如果用户使用网贷消费之后出现了逾期,并且经过网贷机构和... -
8月2日是什么星座呢 8月2日是什么星座
今天来聊聊关于8月2日是什么星座呢,8月2日是什么星座的文章,现在... -
世界观点:沉重的代步车:无证驾驶违规...
我们通过一起痛心的交通事故,提示大家,尤其是老年人,不要购买违... -
全球新资讯:使用 Spring Cloud Bus...
基于消息的事件驱动是一种常见的微服务架构设计模式,它将不同的微... -
世界简讯:都市传说推理冒险《流行之神1...
都市传说推理冒险《流行之神1·2·3收藏集》确定将在7月27日登陆PS4... -
种田建造游戏《满庭芳:宋上繁华》已在S...
融合了历史、剧情、策略等元素的古风题材城市建造类游戏《满庭芳:... -
世界新动态:《塞尔达传说;王国之泪》...
近日,Switch日服eShop的《塞尔达传说;王国之泪》商店页面进行了更... -
焦点信息:新开奇迹mu手游私服合集 最新...
,最新的奇迹手游有哪些?奇迹手游是非常火爆的一类游戏,今天小编就... -
世界最资讯丨生化危机4重制版第十章CQBR...
《生化危机4:重制版(ResidentEvil4)》中的第十章里面是可以收集... -
每日观察!生化危机4重制版第十章红宝石...
《生化危机4:重制版(ResidentEvil4)》中的第十章里面是可以收集... -
当前快播:《匹诺曹的谎言》新场景视频...
今日《匹诺曹的谎言》官方微博公布了新的场景视频,主角P行走在克拉... -
生化危机4重制版第十章华丽的甲虫在哪里...
《生化危机4:重制版(ResidentEvil4)》中的第十章里面是可以收集... -
每日精选:生化危机4重制版第十一章大金...
《生化危机4:重制版(ResidentEvil4)》中的第十一章里面是可以收... -
天天热点!《被虐的诺艾尔》DLC“FINAL...
《被虐的诺艾尔》的最新DLC“FINALPART1”将于4月24日上线Steam平台... -
今日报丨WePlay文化展定档11月18日 CiG...
今日(4月21日),WePlay文化展官方微博宣布2023WePlay文化展将于11... -
天天快消息!Python面向对象编程-反射
在Python中,反射是一种动态访问和修改对象属性和方法的机制。通过... -
世界热文:国风种田建造游戏《满庭芳:...
融合了历史、剧情、策略等元素的古风题材城市建造类游戏《满庭芳:... -
灵墟移动速度怎么提高?灵墟移动速度提...
灵墟移动速度提高方式这个问题,其实啊这个问题是玩灵墟必定会遇到... -
IP强势回归,恺英网络《石器时代:觉醒...
4月20日,国家新闻出版署官方公示了2023年4月份国产网络游戏审批信... -
《无畏契约》捷风的技能什么效果?《无...
《无畏契约》这款游戏相信玩家们都会知道,其实《无畏契约》的《无... -
【天天速看料】国际首个HMO检测团标发布...
近日,《婴幼儿配方乳粉中7种母乳低聚糖含量的测定-液相色谱质谱法... -
环球快报:《命运2》圣人14法语配音演员S...
SylvainLemarié是一位法国配音演员,曾为许多电影、电视节目、动画... -
【环球热闻】“东数”实现“西算”要迈...
ChatGPT大热,对于算力的讨论和布局也随之多了起来。因为不管人工智... -
东京电玩展独立游戏项目赞助商公布 任...
今日(4月21日),东京电玩展官方公布独立游戏展6家赞助商,其中包... -
十大加速单职业传奇排行榜 最火的加速...
,今天小编给大家整理2023传奇手游排行榜,游戏里的传奇世界boss限... -
资讯:狂暴单职业传奇手游推荐 十大狂...
,还在找哪些传奇游戏比较好玩吗?不知道在哪里可以找得到?不用担心... -
今日热门!周杨青的简介个人资料(周杨青...
1、周扬青(GraceChow),1988年9月12日出生于北京,中国内地网络红... -
全球消息!隔离区丧尸末日生存访问卡片...
《隔离区-丧尸末日生存》中的访问卡片是游戏里非常重要的一种特殊道... -
《匹诺曹的谎言》新场景演示 主角漫步...
类魂ARPG游戏《匹诺曹的谎言》今日发布了一段新场景演示视频:克拉... -
全球快看:4月25日活动开始!Steam解谜...
今日(4月21日),V社公布Steam解谜游戏节预告,预告中断断续续出现... -
《全境封锁2》第五年更新计划 体验新...
在庆祝《全境封锁》系列问世7周年的“全境封锁日”直播节目中,育碧... -
《蛋仔派对》般若浮生地图怎么进入?《...
在很多游戏中,我们经常会遇到《蛋仔派对》般若浮生地图进入方法介... -
环球今热点:火焰纹章结合安巴转什么职
《火焰纹章:结合》里面有很多的角色,这些角色有着自己的职业,根... -
日本新一周游戏软件销量榜《洛克人EXE...
日本最新一周实体游戏软件销量榜,统计期间为4月10日~年4月16日。... -
超变变态版传奇手游推荐 十大热门传奇...
,传奇游戏可以说是很多玩家非常喜欢的一类游戏,最近有很多玩家想... -
焦点!加速狂暴单职业传奇推荐 新开加...
,今天小编给大家整理2023传奇手游排行榜,游戏里的传奇世界boss限... -
全球观察:FPS新游 《Unrecord》开发者...
4月20日,第一人称射击游戏《Unrecord》发布了一段早期实机演示视频... -
带屏幕的真无线耳机:JBL TOUR PRO 2...
真无线耳机大同小异的今天,行业发展已经遇到了很大瓶颈,不过JBL发... -
要闻速递:使命召唤19第三赛季更新内容...
使命召唤19是一款射击类游戏,游戏第三赛季已经更新上线,带来了全... -
普安县气象台继续发布干旱橙色预警信号...
普安县气象台继续发布干旱橙色预警信号【Ⅱ 严重】 -
十二载助学 梦想的“炭火”生生不息
2023年4月初,兴华助学团队到受助学校、受助学生家中走访。清华大学... -
《崩坏3》盐雪结晶怎么获得?《崩坏3》...
最近有这么一款游戏,以奇特的玩法以及精美的画面征服了大量玩家,... -
当前要闻:定义你的未来赛博造型 《猎...
x前沿科技、人工智能、超现实主义交织融合,这是否正是你向往已久的... -
当前信息:超变切割传奇哪个最好玩 热...
,小编为大家整理的最好玩的传奇手游排行榜,经典三大职业的加入,... -
【环球时快讯】多人合作游戏《因果动物...
今日(4月21日),多人合作游戏《因果动物园》Steam页面上线,预计... -
动态焦点:死亡岛2我的邮差是丧尸位置攻略
死亡岛2我的邮差是丧尸位置是很多玩家不知道的,死亡岛2游戏风格独... -
《寓言之地》小飞猪如何获得?《寓言之...
《寓言之地》虽然好玩,但是游戏中有很多比较令人费解的地方,就比... -
《战火勋章》冬猎阵容怎么搭配?《战火...
在《战火勋章》游戏中,玩家可根据对局需求,选择需要的军官,搭配... -
变态传奇高爆版推荐盘点 2023变态传奇...
,传奇游戏可以说是很多玩家非常喜欢的一类游戏,最近有很多玩家想... -
竖屏变态高爆版单职业传奇推荐 竖屏变...
,传奇经典系列游戏一直是很多玩家的回忆,它的一些复古玩法以及自... -
火焰纹章结合爱尔 & 拉法尔转什么职
《火焰纹章:结合》中,每个角色都需要玩家进行培养,包括但不限角... -
天天讯息:游戏画面直逼现实 《Unrecor...
4月20日,第一人称射击游戏《Unrecord》发布了一段早期实机演示视频... -
《消逝的光芒》近战武器的前缀什么效果...
很多小伙伴在游玩《消逝的光芒》的时候都会发现在很多不同的近战武... -
火焰纹章结合奥尔坦希亚转什么职
《火焰纹章:结合》中,每个角色都需要玩家进行培养,包括但不限角... -
英雄在此集结!与召唤师共同见证LPL十年荣耀
英雄在此集结!与召唤师共同见证LPL十年荣耀,4月21日起至5月20日12... -
《合金弹头觉醒》喷冰枪与火焰炮武器什...
《合金弹头觉醒》喷冰枪与火焰炮武器介绍这个问题呢,是合金弹头:... -
【世界新视野】传奇手游不花钱能玩吗 ...
,无传奇,不兄弟,无兄弟,也不传奇。在那个热血与鏖战的记忆中,... -
《死亡岛2》控制台怎么开启?《死亡岛2...
《死亡岛2》是一款特别不错的游戏,深受玩家的热爱,其中有很多玩家... -
《黎明觉醒》分岔口藏宝图位置在哪?《...
《黎明觉醒》分岔口藏宝图是最近更新后新增的藏宝图之一,很多玩家... -
每日热门:Steam解谜游戏节预告公开 4...
今日(4月21日),V社公布Steam解谜游戏节预告,预告中断断续续出现... -
隔离区丧尸末日生存体温低烧怎么解决
《隔离区-丧尸末日生存》中的体温低烧是游戏里很多人都遇到过的事情... -
银河恶魔城游戏《伊多拉》登陆PS4、Xbox...
发行商AssembleEntertainment和开发商GrimbartTales宣布,2D平台银... -
动作冒险游戏《迷失之刃》正式发售于Ste...
动作冒险游戏《迷失之刃》现已正式发售,登陆PS5、XboxSeriesX|S、E... -
【独家】火焰纹章结合克萝艾转什么职
《火焰纹章:结合》中,每个角色都需要玩家进行培养,包括但不限角... -
天天通讯!瓯海供电分局:电力“及时雨...
“多亏你们及时帮忙安装抽水表计,送来了‘及时雨’,这下我的400亩... -
【天天聚看点】小赢卡贷网贷7000逾期还...
可能会。如果用户使用网贷消费之后出现了逾期,并且经过网贷机构和... -
KRAFTON与NAVER Z 建立合资公司 开展元宇宙项目
KRAFTON公司(首席执行官CH Kim)计划与NAVER Z公司(联合首席执... -
8月2日是什么星座呢 8月2日是什么星座
今天来聊聊关于8月2日是什么星座呢,8月2日是什么星座的文章,现在... -
世界观点:沉重的代步车:无证驾驶违规...
我们通过一起痛心的交通事故,提示大家,尤其是老年人,不要购买违... -
焦点资讯:洛克王国锻造合金装备活动攻略
洛克王国锻造合金装备是塔罗斯进化活动,活动难点在于材料掉率感人, -
最新快讯!传奇单职业手游变态版合集 传...
,传奇手游哪个好玩?传奇手游有着熟悉的传奇界面,熟悉的玩法,原汁... -
火焰纹章风花雪月深渊之中关卡困难攻略
火焰纹章风花雪月深渊之中关卡是很多玩家不知道怎么打的,风花雪月... -
速讯:黎明觉醒分岔口藏宝图在哪里 分...
黎明觉醒金色沙漠中分岔口藏宝图在什么地方?作为新增的藏宝图之一... -
【当前独家】《DOTA2》地图大变样 7....
MOBA游戏《DOTA2》的7 33版本更新。然而将其称为一个全新的游戏并... -
天天微头条丨隔离区丧尸末日生存复合弩...
《隔离区-丧尸末日生存》中的复合弩是游戏里非常好用的强力武器,而... -
世界看热讯:我的世界传奇怎么召回傀儡...
我的世界传奇怎么召回傀儡 我的世界传奇是一款新的动作战略游戏,探 -
世界快资讯丨我的世界传奇悦灵怎么增加...
我的世界传奇悦灵怎么增加 我的世界传奇是一款新的动作战略游戏,探 -
环球新资讯:雅达利现已获得100多个复古...
虽然在很长一段时间内雅达利已经淡出了游戏界,远不如其巅峰黄金时... -
今日关注:csgo饰品租赁平台那个好 csg...
,最近,很多朋友在一些开箱平台上驾驶csgo武器等。但一些朋友不知... -
五一假期热门城市出炉:多个省会及直辖...
今日已是4月20日,眼看距离五一假期越来越近。中国铁路依据车票发售... -
环球今日讯!隔离区丧尸末日生存钢筋丧...
《隔离区-丧尸末日生存》中的钢筋丧尸是游戏里非常厉害的一个强力敌... -
Meta裁员上万 旗下游戏开发商均受到严重影响
QuestVR游戏《孤声(LoneEcho)》开发商ReadyatDawn据报道受到MetaQ... -
微速讯:镇魂街天生为王斗罗大陆联动兑...
镇魂街天生为王最新兑换码是多少?全新联动版本「蛛心对弈」正式上线 -
环球关注:万智牌发布最新系列:邪军压境
威世智将于2023年4月21日推出世界上第一款集换式卡牌游戏《万智牌》... -
怪物猎人崛起凶琴秋岚怎么制作
《怪物猎人:崛起》最近更新了曙光第五弹的内容,在更新中就包括凶... -
csgo还有什么平台可以租皮肤 靠谱的csg...
,最近,很多朋友在一些开箱平台上驾驶csgo武器等。但一些朋友不知... -
《因果动物园》Steam页面上线 年内发售
今日(4月21日),多人合作游戏《因果动物园》Steam页面上线,游戏... -
环球热资讯!有哪些好玩的传奇类手游 ...
,传奇经典系列游戏一直是很多玩家的回忆,它的一些复古玩法以及自... -
世界观天下!租csgo饰品的平台有哪些 ...
,最近,很多朋友在一些开箱平台上驾驶csgo武器等。但一些朋友不知... -
动作冒险游戏《迷失之刃》正式发售 Ste...
动作冒险游戏《迷失之刃》现已正式发售,登陆PS5、XboxSeriesX|S、E... -
世界今亮点!GSC将推出《勇气默示录》主...
GSC将推出《勇气默示录》第二男主人公林格亚贝尔的POPUPPARADE手办,POPUPPA -
环球观天下!地平线2西之绝境挖掘者饰品...
地平线2西之绝境挖掘者饰品位置是很多玩家不知道的,地平线2玩家需... -
每日短讯:厦门旅游复苏:游艇行业备受...
■船长康龙辉在驾驶游艇。■游艇驾驶员培训现场。■游艇成为五缘湾... -
天天热点评!桌面地下城迈达斯手套怎么样
在游戏《桌面地下城(DesktopDungeons)》中,迈达斯手套在前期是个... -
Arkane开发《死亡循环》的原因是不想再...
近日,Arkane工作室的创始人RaphaëlColantonio在接受RockPaperShot... -
资讯:桌面地下城不可知论者的项圈怎么样
在游戏《桌面地下城(DesktopDungeons)》中,不可知论者的项圈是任... -
每日讯息!CSGO饰品交易软件哪个好用 好...
,很多喜欢csgo的伙伴都在寻找可靠的国内开箱网站。毕竟,如果能从... -
环球最资讯丨LCK亚运会预选阵容出炉:Ru...
LCK亚运会预选阵容出炉:Ruler、Kanavi在列,让我们一起来看看吧! -
当前最新:csgo开箱钥匙在哪里买 csgo...
,白嫖一次的开箱网站,玩家可以免费开一次箱获得免费的皮肤,虽然... -
世界热议:有哪些好玩的传奇类手游 十大...
,传奇手游哪个好玩?目前有哪些传奇手游值得玩?传奇手游要选择什么... -
世界视讯!战略游戏《钢铁战队:入侵》S...
今日(4月21日),即使战略游戏《钢铁战队:入侵》Steam页面上线,... -
环球看点!CSGO开箱概率是多少 csgo开...
,白嫖一次的开箱网站,玩家可以免费开一次箱获得免费的皮肤,虽然... -
《不朽者传奇》游戏玩法抢先看预告片
今日,EAOriginals和AscendantStudios公开全新《不朽者传奇》预告片...