使用 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
标签:
精彩推送
天天热资讯!中国发布丨又降温了!今日起强冷空气大举入侵 局地有强沙尘暴
今天,新疆南疆盆地和东部、内蒙古大部、甘肃、宁夏、陕西北部、山西北部、河北北部、北京北部、辽宁中...
全球球精选!苹果被指窃取商业秘密Masimo 公司索赔31亿美元
4月19日消息,苹果公司和脉搏血氧仪公司Masimo的法律纠纷已经进行了两周,因为这场审判是闭门进行的,因...
新闻快讯
X 关闭
X 关闭
新闻快讯
- 使用 Spring Cloud Bus 在微服务之间传递消息示例
- 建车B(200054)4月21日游资资金净买入2340.00元_环球热文
- 蛤壳的三层是什么?|世界快消息
- 【世界聚看点】石楼交警走进广场“面对面”开展交安宣传
- 对历史违建翻新即查即拆
- 华为宣布突破ERP系统封锁 任正非孟晚舟发声
- 全球快资讯丨远安县气象台发布大风蓝色预警【IV级/一般】
- 标致4008机油型号,标致4008保养用什么机油 焦点要闻
- 泰安实现企业北交所上市“零”的突破
- 国家文物局发布《国家考古遗址公园发展报告(2018—2022)》
- 新农言 | 别让“电商果”成为劣质水果代名词_环球最新
- 支撑6G通信技术发展 我国高速通信技术取得突破-微速讯
- 焦点日报:聚焦户外体育活动,天府五幼教师共研安全防护策略
- 植筋是什么意思图解_植筋是什么意思
- 【天天快播报】第十五届“战马24小时”昆明轿子山翻越挑战赛报名启动
- 枪支暴力剧增:美国人心理创伤正在广泛蔓延
- 全市场:加拉塔萨雷尝试引进丹布罗西奥,已派遣官员与经纪人会面-全球看热讯
- 巨化股份:2022年年归母净利润23.81亿元,同比增114.66%,拟10派2.7元
- Moderna与IBM合作将人工智能、量子计算于应用于mRNA疫苗研发中
- 亳州市场:手中存量薄弱 党参行情逐步上调 世界速看料
- 广厦VS广东G2名单:朱俊龙卡明斯张皓嘉缺席 沙巴兹入选 环球聚看点
- 大队书记的权力有多大,女知青是手中玩物,整人就像过家家 天天热议
- 知识产权日|知识产权教育进校园、进社区 大力倡导创新文化
- 当前要闻:Stellantis因发动机问题召回超17.5万辆Dodge和Jeep车型
- 当前速看:为什么耳机有滋滋声还会影响手机_为什么耳机有滋滋声
- 利雅得新月晒C罗锁喉瞬间配上约翰-塞纳的BGM,写道:WWE?
- 欢瑞世纪(000892.SZ):2022年度净利润1795.06万元 同比扭亏
- 定在济南!“2023世界激光产业大会”来了|全球速读
- 鹅绒被用套被罩吗|焦点短讯
- 读书 | 一个古籍修复师的寻纸七年路(一)
- 叫停AI却自己研发 马斯克想干啥?
- 中国足球彩票胜负彩23054期澳盘最新赔率(04.19)-每日速看
- 人工智能板块高位分化,市场震荡调整中寻找低吸机会
- 芋头的吃法大全_芋头的烹饪方法
- 天天热资讯!同样演“爱人替受刑”,把白鹿和杨紫放在一起对比,差别就出来了
- 每日快看:源汇区干河陈市场监管: 召开商户培训观摩会确保"舌尖安全"!
- 今日关注:云创数据获得发明专利一项:可广泛应用于高反射性工件表面的自动检测
- 读懂中国|竹内亮:把中国好玩的东西分享出去-全球观察
- 快资讯:武汉时装周开幕 国风国潮惊艳亮相
- 世界信息:代价巨大教训惨痛!防火责任重于泰山,警钟必须时刻长鸣
- 灵武市为121家企业兑现奖补资金4172万元
- 环球即时:厦门职业培训补贴申请材料有哪些?
- 杨蓉蓉:每年至少一款E-GMP电动车,起亚将持续推进品牌变革
- 木神句芒的故事 木神
- 每日观点:中银证券:给予罗莱生活买入评级
- 清华珠三角研究院联合赛业生物:寻找颠覆性技术,着力解决基因治疗技术瓶颈 热点
- 全球简讯:生产文员个人工作总结(实用17篇)
- 环球热文:森泰股份跌6.95% 超募4.2亿元民生证券保荐
- 科目二多少分及格c2扣分标准 科目二多少分及格
- 央行邹澜:不存在长期通缩或通胀的基础_快资讯