(资料图片)
下面是一个完整的示例,演示如何使用 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
- 渭城区召开2023年高质量项目推进会|世界
- 吉宏股份:海外消费市场恢复还需要时间
- 火箭13+6扣将膨胀了?疑似为勇士格林鸣不
- 全球快播:梦幻西游手游离火童子内丹推荐
- Adobe认证是什么?
- 当前观察:3千名学生课间齐跳蒙古舞
- 人民网评:全力做好洪涝干旱台风灾害防范
- 《倒数说爱你》回应涉嫌侵权一事,电影将
- 焦点热讯:东方卫视终于做出变革!滑稽演
- 一季度北京数字经济增加值4265.7亿元 新
- 【环球热闻】智领未来!寅家科技携智慧出
- 冒险游戏《巴别塔圣歌》发售日预告 9月5
- 世界热点!提升工地形象 嘉定污水厂项目
- 睡前故事幼儿故事大全有寓意(睡前故事幼
- 446箱超标“蓝涧”饮用水销往京津,中宝
- 龙韵股份:股东拟减持公司不超1.54%股份
- 徐州博大学校知乎 徐州博大学校 今日快讯
- 当前速讯:中巴经贸合作蒸蒸日上 前景可期
- 信用卡逾期一个月的补救方法有什么?信用
- 全球视讯!4月19日国内TDI市场行情高位整理
- 天天微资讯!红魔散热器4Pro磁吸版:AI控
- 【全球时快讯】北京大兴:签约18家“兴伙
- 年内数字经济概念大涨44%
- 苏伊士运河搁浅货轮已恢复正常航道
- 女士超短发酷酷的发型 依然是夏天主流发型
- 中国传统文化特点_中国传统文化特点是什么
- 新东方的压力给到了东方甄选-热门看点
- 硅业分会:本周硅料成交相对清淡 价格维
- 今日热议:诚意十足 永康推介会披露10宗
- 公牛集团跌3.25% 申银万国年内高位喊买
- 漯河市举办第六届公共资源交易“媒体开放
- 海天物联2022年净利356.40万 同比减少17
- 美国10年期国债收益率上涨6个基点至3.63%
- 全球热议:又一个新款博越——体验吉利博
- 怎么看微信好友是否把自己删了_怎么看myr
- 万控智造:2022年年归母净利润同比增7.94
- 世界快看:今日城市英雄是个好玩的游戏?
- “交通安全摩友暖心驿站”落户怀柔 创设
- 每日关注!日常生活:怎样饲养小鸡
- 环球快报:淅川厚坡镇:土地流转焕发农村
- 能“吸水”、会“变身”……“绿色办赛
- 每日动态!马赫雷斯FIFA23问答:哈兰德是
- 《苏秦》明日亮相天津大礼堂
- 焦点速看:焦作惠民保和百万医疗险的区别
- 地铁站内待太久要收“超时费” 西安有此
- 西顿照明 | C端产品矩阵暨BLT智能系统
- 速读:瑞银:维持阿里健康中性评级 目标
- “共享运维”守护平安输气|环球快播报
- 环球即时:北京长峰医院火灾已致29人遇难
- 肾结石能不能吃白兰瓜?肾结石有哪些症状
- 黄山振州2022年亏损17.99万同比由盈转亏
- 焦点快播:8小时班几点到几点 8小时班和
- 明道官宣妻子怀二胎将产女 一儿一女好事
- 世界热文:信息技术板块走强,信息技术ET
- 美联储理事鲍曼:零售型央行数字货币或弊
- 天天观焦点:全国首个“牡丹科技小镇”将
- 广州旧改大变局:颠覆旧模式,民营房企会
- 快来参与!自治区商品过度包装和塑料污染
- 南凌科技4月19日盘中涨幅达5%
- 全球视讯!4月19日国内TDI市场行情高位整理
- 天天微资讯!红魔散热器4Pro磁吸版:AI控
- 【全球时快讯】北京大兴:签约18家“兴伙
- 年内数字经济概念大涨44%
- 苏伊士运河搁浅货轮已恢复正常航道
- 女士超短发酷酷的发型 依然是夏天主流发型
- 中国传统文化特点_中国传统文化特点是什么
- 新东方的压力给到了东方甄选-热门看点
- 硅业分会:本周硅料成交相对清淡 价格维
- 今日热议:诚意十足 永康推介会披露10宗
- 公牛集团跌3.25% 申银万国年内高位喊买
- 漯河市举办第六届公共资源交易“媒体开放
- 海天物联2022年净利356.40万 同比减少17
- 美国10年期国债收益率上涨6个基点至3.63%
- 全球热议:又一个新款博越——体验吉利博
- 怎么看微信好友是否把自己删了_怎么看myr
- 万控智造:2022年年归母净利润同比增7.94
- 世界快看:今日城市英雄是个好玩的游戏?
- “交通安全摩友暖心驿站”落户怀柔 创设
- 每日关注!日常生活:怎样饲养小鸡
- 环球快报:淅川厚坡镇:土地流转焕发农村
- 能“吸水”、会“变身”……“绿色办赛
- 每日动态!马赫雷斯FIFA23问答:哈兰德是
- 《苏秦》明日亮相天津大礼堂
- 焦点速看:焦作惠民保和百万医疗险的区别
- 地铁站内待太久要收“超时费” 西安有此
- 西顿照明 | C端产品矩阵暨BLT智能系统
- 速读:瑞银:维持阿里健康中性评级 目标
- “共享运维”守护平安输气|环球快播报
- 环球即时:北京长峰医院火灾已致29人遇难
- 肾结石能不能吃白兰瓜?肾结石有哪些症状
- 黄山振州2022年亏损17.99万同比由盈转亏
- 焦点快播:8小时班几点到几点 8小时班和
- 明道官宣妻子怀二胎将产女 一儿一女好事
- 世界热文:信息技术板块走强,信息技术ET
- 美联储理事鲍曼:零售型央行数字货币或弊
- 天天观焦点:全国首个“牡丹科技小镇”将
- 广州旧改大变局:颠覆旧模式,民营房企会
- 快来参与!自治区商品过度包装和塑料污染
- 南凌科技4月19日盘中涨幅达5%
- 如何看待一季度经济形势?国家发改委回应
- 银信科技:接受参与公司2022年度网上业绩
- 小单快返 创新拓市 “国际纺都”紧跟时
- 男人肾在哪里? 世界速读
- 北京将打造约5条“深夜食堂”餐饮街区点
- 山东:今年围绕全省综合交通投资超3100亿
- 长江钢铁螺纹和盘螺出厂价格调整均上调20
- 天天观点:男子离职后注销店里抖音号 被
- 2023吉林市马拉松将于6月11日举办_当前焦点
- 快消息!民和股份:4月18日融资买入1221.
- 天天新动态:赡养父母的法律规定有哪些内
- 环球关注:丝滑畅快当贝H3,电视盒子的最
- 当前信息:英集芯:4月18日融资买入535.9
- 通讯!地铁7号线首批两座车站主体完工
- 加感叹号的意思_感叹号的意思
- 环球微动态丨“五一”返程火车票今起开售
- 动漫风《刀锋王子学院》公布 现代元素的
- 摔角动态前Nexus成员现身SmackDown现场秀
- 当前通讯!连云港市住房公积金查询入口(
- 江歌妈妈诉网暴者侮辱诽谤案一审宣判:被