使用 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
标签:
您可能也感兴趣:
今日热点
为您推荐
制止餐饮浪费 | 湖北黄冈曝光10起案例 奥斯客欢乐餐厅、菜园子食府等被警告
环球关注:“铁拳”行动 | 山东公布8起典型案例 骄阳药业等被点名
全球微速讯:制止餐饮浪费|河南省市场监管局召开落实平台责任行政指导会
排行
精彩推送
- 使用 Spring Cloud Bus 在微服务之间传递消息示例
- 世界快资讯:年底本年利润如何结转_年底
- 世界资讯:从拔草到踩坑,探店视频误导消费者是否担责?
- 呼吸困难,咳嗽|今日要闻
- 过夜的百香果柠檬水为什么会苦?
- 焦点快报!捷报频传!
- 水果j级和a级什么意思?
- 当前播报:平安资管再次喊话汇丰:任何股东或投资者的意见理应...
- 焦点日报:两个坏消息!快船注定被绅士横扫,莫兰特G3回归?...
- 《猫冬》作者:清明谷雨(酸甜口/掉马/拉扯)
- 每日热闻!和绿豆汤立马就没口臭
- 2023上海车展:捷尼赛思G90国内首发并开启预售
- 别奶啊!魔术师发推:明日我会去主场看湖人击败灰熊的比赛|独家
- 月夜直播下载视频免费版|天天观焦点
- 全球动态:一加折叠屏手机OnePlus V Fold配置信息曝光,搭载8英寸2K内屏
- 人民日报寰宇平:化解冲突,展现对话协商的力量-世界速看料
- 红菊花茶的功效与作用|全球观天下
- 美联储库克:正评估信贷紧缩影响 以为利率决策提供强有力数...
- 环球快消息!姚振华带领管理团队现身上海车展 宝能汽车产业...
- 环球关注:怎么给宝宝挑选酸奶 怎么给宝宝挑选酸奶呢
- 老年人高血糖吃什么好?_动态焦点
- 老人空腹血糖高怎么办
- 老人血糖高是糖尿病吗 环球通讯
- 聚焦:痛风会怎么样
- 老人血糖高什么不能吃|环球播报
- 陕西今年高考继续实施“专项计划”招生
- 红菊花茶的功效与作用
- 晚上睡不着,会失眠,心情突然不好|每日聚焦
- 实用又有面子 三款十万左右二手车导购
- 除湿的最好食物是什么?|环球新动态
- 全球热文:晚上睡不着,会失眠,心情突然不好
- 全球报道:加拿大授予大众电池厂最高百亿美元补贴:拜登给多少...
- 世界报道:空调制热与取暖器哪个省电?
- 山西省临汾市2023-04-21 21:34发布暴雪黄色预警 当前播报
- 老人血糖高是糖尿病吗 每日快播
- 肺癌怎么预防
- 老年人高血糖吃什么好?|天天观天下
- 老人血糖高什么不能吃|精选
- 痛风会怎么样 全球资讯
- 怎么做好预防肺癌
- 今日dnf满级职业转换书_dnf职业转换书90级|环球快播报
- 恩威医药(301331.SZ):2022年度净利润6780.13万元 拟10派16元
- 当前看点!老人空腹血糖高怎么办
- 消息!京山轻机:4月20日召开董事会会议
- 得痔疮了会自愈吗|环球视讯
- 当前关注:肾脏疾病做什么检查
- 全球热消息:如何利用经期减肥?
- 胃癌术后两年胃痛检查要作胃镜吗
- 环球热讯:有了痔疮可以自愈吗
- 【天天新要闻】用友网络:公司参与华为MetaERP系统财务模块合...
- 胃溃疡的胃镜检查结果是什么
- 昨天去做胃镜,发现有胃溃疡和胃息肉,胃痛怎么办?-快报
- 上海证券交易所原副总经理刘逖接受监察调查|全球热点评
- 全球百事通!方正证券(601901):4月21日北向资金增持30.68万股
- 焦点热议:湖南省益阳市大通湖区市场监管局深入“三小门店”开...
- 全球今亮点!2023上海车展|周圣砚:2030年后有望实现L4自动驾...
- 读创下午茶|旗下艺人夺C位,股价大涨!“王一博概念股”瞄准...
- 天天亮点!砖的种类有多少(砖的种类有多少种)
- TA:安切洛蒂私下不满外界批评,也不知道自己是否能留在皇马
- 月薪上万招不到烧烤师,淄博烧烤店主迎“五一”压力拉满-天天...
- 服装水洗标符号大全图解_服装水洗标符号大全
- 中国石油首个大规模绿电自消纳项目累计发电超5000万千瓦时_每...
- 上海车展 | 展台PK七宗最,盘点最奢华、最人气、最失落的车企
- 天天热文:走进“诗仙”的别样世界 舞剧《李白》登陆海南
- 晔怎么读拼音怎么写(晔怎么读) 天天讯息
- 肯尼迪侄子宣布竞选总统:“中国做法和美国不同…”,现场响...
- 全国租房合同范本(热门12篇)-每日视点
- 从金阳客站到花溪平桥 贵阳公交223路恢复运营 世界热点
- 现货市场疲弱,盘面低位震荡
- 经常感冒的人是怎么回事? 天天要闻
- 英伟达推出 AI 视频生成模型 VideoLDM 速看料
- 怎么才能口气清新|全球快看
- 有口臭用口气清新剂有用吗_天天快看
- 口臭怎么才能清新口气
- 身上起红点是肝病吗
- 口气不清新是什么原因|环球热文
- 世界快看点丨高血压用住院么
- 资讯推荐:奥飞娱乐(002292):4月21日14时20分触及跌停板
- 上海银保监局:3月上海辖内银行业金融机构本外币总资产余额23...
- 华尔街新晋对冲基金筹资规模明显回暖! 新一批增量资金即将入...
- 今日视点:欧洲央行官员:现在谈论暂停加息周期还为时过早
- 快看点丨经济数据意外走强 英国央行再次加息已成定局?
- DIY“Beetlejuice”主题纸杯蛋糕_父亲节女儿送爸爸什么礼物
- 焦点速看:减产超100万桶后 普京连线沙特王储讨论欧佩克+合作问题
- 两部门推动纺织服装产业发展,海外订单明显回暖
- 最新快讯!湖北长江出版传媒集团有限公司、长江出版传媒股份有...
- 刑事拘留办理取保候审的条件-全球速读
- 国家邮政局:一季度邮政行业寄递业务量累计完成341.7亿件 同...
- GGII:一季度中国动力电池市场出货量128GWh 环比下降12.3% 环球实时
- GGII:一季度户储电池出货不及预期 全年高增长预期不改-世界快播
- 痛风病人可不可以吃醋 全球报资讯
- 每天喝牛奶可以美白吗 世界微速讯
- Gartner发布2023年网络安全重要趋势 天天速看料
- 聚焦传统村落保护发展 新县为何能作为示范县在全省推进会上...
- 日本央行坚持宽松,市场却掀起“转向之风”! 瑞银押注日元将...
- 最资讯丨痛风病人可以吃醋吗?
- 全球热资讯!香港再有两名“唱高散货”集团成员被检控 累计...
- 视讯!服务业活动持续复苏 欧元区综合PMI初值加速至11个月高点
- 敏捷控股(00186.HK):委任中汇安达为核数师 时讯
- 【环球报资讯】身体寒气重的表现?