(资料图片)
下面是一个完整的示例,演示如何使用 Spring Cloud Bus 在微服务之间传递消息。该示例包含两个微服务,一个是消息发送者,另一个是消息接收者。
首先,我们需要创建一个 Spring Boot 项目,并添加 Spring Cloud Bus 和 RabbitMQ 的依赖。在 pom.xml 文件中添加以下依赖:
org.springframework.cloud spring-cloud-starter-bus-amqp 2.2.1.RELEASE org.springframework.boot spring-boot-starter-web 2.2.1.RELEASE org.springframework.boot spring-boot-starter-amqp 2.2.1.RELEASE
在创建的项目中,我们定义了一个消息类型 MyMessage,该类型包含一个字符串类型的 content 属性。
javaCopy codepublic class MyMessage implements Serializable { private static final long serialVersionUID = 1L; private String content; public MyMessage(String content) { this.content = content; } public String getContent() { return content; } public void setContent(String content) { this.content = content; }}
然后,我们创建了一个消息发送者,该发送者使用 Spring Cloud Bus 发送消息。
@RestControllerpublic class MyController { @Autowired private MessageSender messageSender; @PostMapping("/send") public void sendMessage(@RequestBody MyMessage message) { messageSender.sendMessage(message); }}@Servicepublic class MessageSender { private static final Logger LOGGER = LoggerFactory.getLogger(MessageSender.class); @Autowired private MessageChannel output; public void sendMessage(MyMessage message) { LOGGER.info("Sending message: {}", message.getContent()); output.send(MessageBuilder.withPayload(message).build()); }}@Servicepublic class MessageListener { private static final Logger LOGGER = LoggerFactory.getLogger(MessageListener.class); @StreamListener(target = Sink.INPUT, condition = "headers["type"]=="MyMessage"") public void handleMessage(MyMessage message) { LOGGER.info("Received message: {}", message.getContent()); }}
在这个例子中,我们创建了一个 MyController 类,该类定义了一个发送消息的 API 接口,接收一个 MyMessage 类型的参数,将参数传递给 MessageSender 类的 sendMessage() 方法。
MessageSender 类定义了一个 sendMessage() 方法,该方法使用 Spring Cloud Stream 的 output 消息通道发送消息。
MessageListener 类定义了一个 handleMessage() 方法,该方法使用 @StreamListener 注解监听 Spring Cloud Stream 的 input 消息通道,并根据消息类型过滤消息。当有符合条件的消息到达时,handleMessage() 方法会被自动调用,处理接收到的消息。
在以上代码中,我们使用了 @Autowired 注解自动注入了 MessageSender 和 MessageListener 类,这是 Spring Boot 自带的依赖注入功能。
运行应用程序后,我们可以使用 Postman 工具或其他 HTTP 工具发送 HTTP POST 请求,将消息发送到消息发送者的 API 接口,如下所示:
POST http://localhost:8080/send HTTP/1.1Content-Type: application/json{ "content": "Hello, World!"}
当消息到达时,消息接收者会打印消息内容,如下所示:
2023-04-19 09:24:47.836 INFO 29740 --- [afka-listener-1] com.example.demo.M
标签:
-
天天新资讯:使用 Spring Cloud Bus 在微服务之间传递消息示例
下面是一个完整的示例,演示如何使用SpringCloudBus在微服务之间传递消息。该示例包含两个微服务,一个是消息发送者,另一个是消息接收者。
-
天津消防技术服务机构采取“四个一”服务模式助力消防安全工作|今日热门
天津消防技术服务机构采取“四个一”服务模式助力消防安全工作
-
拳王老爸_当前报道
1、拳王老爸是青年导演广帅2013年指导的一部动作励志影片。2、影片于2015年登陆各大视频网站。3、2015年11
-
小米上亿资产遭冻结_申诉被印度驳回,究竟是怎么一回事?|天天热门
正文摘要:据路透社和印度当地媒体4月21日报道,卡纳塔克邦的一家法院驳回小米印度公司对该国执法机构扣押其555 1亿卢比
-
全球头条:密山市气象台发布大风蓝色预警【IV级/一般】【2023-04-22】
密山市气象台发布大风蓝色预警【IV级 一般】【2023-04-22】
-
庭审现场变环保普法课,生态环境检察公益诉讼守护青山绿水
4月22日是第54个世界地球日,当天上午10时,“同在一片蓝天下”第三期访谈开播,武汉市青山区检察院检察长张莉,青山区检
-
环球快资讯丨上交所:本周对ST泽达、ST紫晶等风险警示股票进行重点监控
App4月21日消息,上交所公告,4月17日至4月21日,上交所对ST泽达、ST紫晶等风险警示股票进行重点监控,对130起加剧市场波动、误导投资者决策、
-
满五唯一是什么意思?买二手房不懂“满五唯一”?难怪多花好几万_焦点简讯
在房产市场中,不仅有一手房买卖,还有二手房交易,如果一手楼盘不合适的话,人们就会选择购买二手房。在二手房交易过程中,“满五唯一”的...
-
律师代理费计算器2020_律师代理费计算器
1、如果合同有注明仲裁,一审,2审。2、执行,那你就不用交律师费,等案件执行完毕付剩下的20%。本文分享完毕,希望对大
-
吴承恩父亲是谁(吴承恩的父亲叫什么)|天天精选
吴承恩(约1500—1582年),字汝忠,号射阳山人,明代文学家,是《西游记》的作者,中国明代杰出的小说家。那么吴承
-
天天即时看!电脑时间总是变快怎么办_电脑时间总是变快
1、修复正确的电脑时间的方法;1,先讲第一种情况,有的电脑开机后,显示的时间严重不正确,可能时间显示是几月前,或者几年前
-
环球快报:文化强省 版权护航 | 长沙版权工作的湘韵悠悠路
红网时刻新闻记者曾拥璇长沙报道一般作品版权登记量135217件,完成全国范围内的作品区块链版权存证数超101万件,拥有
-
数据里看“五一”旅游热潮 各景区提升软硬件迎八方客_今日观点
数据里看“五一”旅游热潮各景区提升软硬件迎八方客,旅游,索道,软硬件,风景区,景区门票
-
北影节红毯:古力娜扎上场三次换三套衣服,陈红发福,有人还摔倒
在电影《穿过月亮的旅行》里饰演年轻夫妻的张子枫和胡先煦(中间两位),默契地穿了黑色礼服,这也是张子枫比较罕见地尝试成熟风格的裙子,意
-
再捐1亿元种树治沙:蚂蚁集团持续七年支持内蒙古生态治理 每日视讯
鞭牛士报道今天(4月22日)是“世界地球日”,内蒙古自治区林草局与蚂蚁集团启动战略合作:由蚂蚁集团在三年内再捐资1亿元,通过公益项目“...
-
世界信息:二十四小时莫当日字猜打一字(二十四小时莫当日字猜)
一、题文二、解答本文到此结束,希望对大家有所帮助。
-
环球头条:墨西哥南部发生4.2级地震
根据墨西哥国家地震监测局公布的信息,当地时间4月21日22时08分47秒,在墨西哥南部的格雷罗州(Guerrero)的圣
-
广州一季度迎来多家期货公司来展业
2023年一季度,广州期货招商工作显成效,累计新设1家法人期货公司、8家期货公司地区总部。中州期货有限公司(以下简称中州期货)于3月底获中国
-
突发!这国前总统在美自首
据央视新闻,当地时间4月21日,秘鲁前总统亚历杭德罗·托莱多在其妻子和辩护人的陪同下向美国司法机构自首,他将被引渡回秘鲁
-
人在低谷,最了不起的能力_全球报资讯
作者 鲁墨无华图 来源网络来源:京博国学(ID:jingboguoxue)《易经》有言:“尺蠖之屈,以求信也;龙蛇之蛰,以存身也。”尺蠖这种小虫屈起
-
泉港区举办2023年“书香泉港·全民阅读”
④21日,泉港区举办2023年“书香泉港·全民阅读”启动仪式暨第六届上巳节系列活动,让群众乐享春光,遇见古风,沐浴书香
-
世界头条:广期所副总经理曹子海:力争年内上市碳酸锂、多晶硅期货
据期货日报,广州期货交易所副总经理曹子海21日表示,广期所将在“新能源金属”板块继续发力,力争年内上市碳酸锂、多晶硅期货,并抓紧推进...
-
大事见能力,小事见态度,琐事见格局|每日热议
来源|洞见作者|洞见yimo人须在事上磨,方立得住。孔子说:听其言,观其行。要对一个人做出准确的判断,光听他说什么是不够的,关键是要看他怎
-
哀莫大于心死下一句悲莫大于_哀莫大于心死 悲莫过于无声 这是什么意思
1、意思是最悲哀的事,莫过于思想顽钝,麻木不仁。2、一般的悲伤不能超过无声的悲伤。3、哀莫大于心死——出自春秋战国庄子《
-
像素涂鸦本好玩吗 像素涂鸦本玩法简介
期待已久的手游像素涂鸦本即将登陆九游,这款手机游戏吸引了大批玩家的关注,想下载这款游戏,有很多粉丝都在问九游小编像素涂鸦本好玩吗?像
-
JoiPlay 1.20.027 官网中文
JoiPlay1 20 027官网中文版本更新:本体JoiPlay1 20 027插件RPGMakerPlugin1 20 28插件Ren& 39;PyPlugin8 0 3_7 5 3_010插件RufflePlugin1 00 1
-
【茄母】执子之手 天天热闻
刚刚看到茄茄的求婚现场!!简直感觉错过了一个亿!!真的太甜辣!!!!!!直接反手就是一个9999999999!!!“我想过很多次该怎么和你说。
-
浙江衢州:最美公路的风景在路上 世界微动态
绵绵青山间,渺渺云雾中,一条条蜿蜒的公路携着水的灵动,花的芬芳,草的清香,树的青翠,在衢州的春天里美的不可方物。车行其间,不期而遇,
-
意大利小伙罗密欧:与中国“有约”发现中国之美 期待共创中国故事!
“没有体验就没有发言权,我的责任之一就是加深对中国的认识,并用受众喜欢的方式来讲述在中国体验到的一切,”已在中国生活了1
-
感受文化 享受清凉 享用美食 古都大同向京津冀发出诚挚邀请 每日简讯
4月21日,以“大同度假清凉一夏”为主题的2023大同市文化和旅游推介会京津冀专场在山西大同举行。京津冀来同精品48小时游、古建地质研学游...