使用 Spring Cloud Bus 在微服务之间传递消息示例
(相关资料图)
下面是一个完整的示例,演示如何使用 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
标签:
精彩推送
环球关注:回天新材:4月20日融资买入790.72万元,融资融券余额1.93亿元
4月20日,回天新材(300041)融资买入790 72万元,融资偿还1042 06万元,融资净卖出251 34万元,融资...
盛讯达:本次交易已于2022年12月完成交割_全球热资讯
盛讯达(300518)04月19日在投资者关系平台上答复了投资者关心的问题。投资者:宇瑞科技的收购现在处于什...
3分,3篮板,3失误,3犯规!这表现,怎么好意思问湖人要顶薪?_环球热讯
3分,3篮板,3失误,3犯规!这表现,怎么好意思问湖人要顶薪?,比斯利,里夫斯,湖人主场,孟菲斯灰熊队,威...
天天热消息:山高新能源集团(01250.HK)1月份累计总发电量约41.38万兆瓦时 同比增长46.1%
格隆汇4月19日丨山高新能源集团(01250 HK)宣布,根据公司现有的初步统计,2023年1月集团按合并报表口径完成发
新闻快讯
X 关闭
X 关闭
新闻快讯
- 使用 Spring Cloud Bus 在微服务之间传递消息示例
- 注重烧香拜佛|全球简讯
- 不要说我的眼泪,你不在乎,东来东往。-即时
- 1卢布等于多少越南币?(2023年4月22日)_全球动态
- 小磁怪100%必出配方_小磁怪-环球百事通
- 张培萌个人资料_张培萌个人的资料
- 世界焦点!excel冻结窗口快捷键_excel冻结窗口怎么设置
- 迎接世界地球日 多地中小学、幼儿园开展丰富多彩主题活动:全球速读
- 每日聚焦:鼠男羊女适合做夫妻吗,属鼠男和属羊女能白头到老吗
- 山西炭美新材料科技有限公司
- 美国油罐车与客车相撞_大量油污入河,究竟是怎么一回事?|天天动态
- 全球热资讯!现场直击!登陆全过程演练
- 小学生家长寄语(小学生家长寄语怎么写一年级):全球热点评
- “味”你而来,解锁醴陵文旅发展新模式
- 我国生态修复“负面清单”管控成效显著_世界快播报
- 封面开讲了丨4·23世界读书日 跟着陈更彭敏潘周聃一起走近苏东坡
- 笑得很灿烂!李梦和张隆抵达美国,中国女篮4大巨星征战wnba
- 五华县高级中学宿舍图片_五华县高级中学|天天新要闻
- 专家称要求女方没弟弟是畸形择偶观,正确择偶观应该是什么样?
- 天天最新:本赛季英超联赛,拉姆斯代尔6次失误直接导致对手射门
- 今日观点!分居三年,娇妻被曝和白人约会,孙悦为何不干脆离婚避免尴尬?
- 造船设计师的晚8点:从0到6艘 “中国造”加速造-焦点热门
- 胡家园街道党建联合体建设启动仪式举行
- 两大新能源巨头大动作 钠电池年内将“上车”!这些概念股业绩报喜
- 湖北咸宁咸安:检察建议让社矫对象“出得去、管得住”_世界播资讯
- 俱乐部由成都搬迁至长沙被足协终止并拒绝,四川九牛足球俱乐部回应:资讯推荐
- 跑出“加速度”!今年以来衡水已签约引进亿元以上项目347个 协议总投资877亿元_当前观点
- 一季度旅游产品和景点门票在线销售额同比增长115.8%
- 【世界快播报】国网果洛供电公司开展春季线路检修 确保群众舒心用电
- 返乡创业,掘地生财:介绍两种新型农业致富机械-全球观焦点
- 10 种美味又营养的冰沙食谱,让瑞茜·威瑟斯彭拥有清透的肌肤-头条
- 【世界时快讯】wbc是什么意思的缩写医学(wbc是什么意思)
- 堇加耳刀念什么_堇加耳朵旁读什么
- 这个改装很过分的好听-丰田凯美瑞升级丹麦绅士宝音响,搭配DSP功放和备胎低音
- 怪物猎人崛起steam下载慢怎么办 Steam满速下载方法分享|天天快讯
- 世界快看:孔庆鹏
- 予人玫瑰手有余香什么意思二年级_予人玫瑰手有余香什么意思
- 科大讯飞龙虎榜:机构净买入2.66亿元
- 【独家焦点】提档再升级!广州拿出“真金白银”带动消费回暖
- 家庭自制酸梅汤的做法_自制酸梅汤的做法与步骤:天天速读
- 环球快播:2023成都郫都区特殊需要儿童少年入学评估指南(对象+流程)
- 每日速读!基层官兵轮休,关注!
- 全球微资讯!警惕!正进行“航母化改装”的“加贺”号,1年来首次驶出船坞
- 全球热点!jdg电子竞技俱乐部老板是谁-jdg电子竞技俱乐部老板
- 张颂文走红毯好忙详细内容
- 今日讯!如何使用卵磷脂作为乳化剂
- 最新灾害风险提示!湖北省西部和北部将出现“倒春寒”|环球百事通
- 《谈事说理》之闽商的未解之局:世界新消息
- 文件名一样被覆盖了_被覆盖掉的同名文件怎么恢复|全球热头条
- 今日wifi漫游有什么用_wifi漫游有什么区别:天天热推荐