首页>动态>正文
使用 Spring Cloud Bus 在微服务之间传递消息示例
2023-04-22 10:36:57    来源:腾讯云


(资料图)

下面是一个完整的示例,演示如何使用 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在微服务之间传递消息。该示例包含两个微服务,一个是消息发送者,另一个是消息接收者。2023-04-22

热点评!快讯2023-04-21 21:06:31

4月21日电,谷歌表示人工智能聊天机器人Bard现在可以帮助编写代码、调试和解释代码。2023-04-22

北京龙泉杏香农业科技发展中心会计李玉荣接受审查调查

门头沟区龙泉镇龙泉务村村委会会计兼北京龙泉杏香农业科技发展中心会计李玉荣涉嫌严重违纪违法,目前正接受纪律审查和监察调查。来源:门头沟2023-04-22

吉林市部署金融支持“一县一业”发展专项行动 金融助力壮大乡村特色优势产业 天天看热讯

本报讯(记者杜清华)4月19日,吉林市金融支持“一县一业”全面助推乡村振兴会议以视频方式召开。会议部署金融支持“一县一2023-04-22

宏碁发布环保材质打造的空气净化器 生活方式品牌转型更进一步! 全球速讯

2023年4月20日在主题为“探索新平衡”的宏碁全球春季新品发布会上,宏碁智新发布宏碁·未来AcerpurePro环2023-04-22

适合发朋友圈母爱的句子_发朋友圈母爱的句子合集

欢迎观看本篇文章,小勉来为大家解答以上问题。适合发朋友圈母爱的句子,发朋友圈母爱的句子合集很多人还不知道,现在让我们一起2023-04-22

进高校传“针”功夫 陇上“绣郎”一双巧手织丝路

3月31日,在甘肃工业职业技术学院,天水刺绣市级非遗代表性传承人刘云帆在技能课堂上给学生演示、讲解天水刺绣的技艺。天水刺绣于2018年被市政2023-04-22

世界热讯:未按规定披露非经营性资金占用,灵康药业被西藏证监局处罚

西藏证监局决定对灵康药业给予警告,并处以一百万元罚款;对陶灵萍给予警告,处以两百万元罚款;对张俊珂给予警告,并处以一百万元罚款。2023-04-22

每日视点!焦.娇美人减肥真能减肥吗?

不要去吃内在的药品(像减肥茶等)和动刀等,台湾万象播出了很多这样的问题(还知道郭德刚吗,就是乱做减肥药广告哟)。其实减肥期吃东西有很多2023-04-22

十二烷基二甲基甜菜碱商品报价动态(2023-04-21) 全球今头条

交易商品牌 产地交货地最新报价十二烷基二甲基甜菜碱 30%含量东营市鑫旺化工有限责任公司山东山东省7000元 吨济南贝亚特化工科技有限公司山东2023-04-22

湖南省检验检测特色产业园科学仪器产业基地在新区启动

红网时刻新闻4月21日讯(通讯员周秋燕)4月21日上午,第四届湖南检验检测技术高峰论坛暨分析测试展览会在长沙开幕,共话2023-04-22

创举科技2022年净利1946.05万同比扭亏为盈 本期完工订单增加

创举科技2022年净利1946 05万同比扭亏为盈本期完工订单增加2023 4 2120:04:40挖贝网易凡挖贝网4月21日,创举科技(87232023-04-22

精彩看点:槿怎么读组词是什么_槿怎么读

1、◎槿拼音:jǐn注音:ㄐㄧㄣˇ部首笔划:4总笔划:15繁体字:槿汉字结构:左右结构简体部首:木◎〔木槿〕2023-04-22

视讯!紫牛拍咖丨蔷薇初开,南京最美背景墙上线!

00:37近日,南京颐和路蔷薇初开,文艺风和复古风的美景吸引不少游客和市民前来打卡。一簇簇蔷薇花淡雅绽放,在枝枝蔓蔓的绿2023-04-22

Galaxy Z Flip4热销 三星再登全球智能手机销量榜首

GalaxyZFlip4热销三星再登全球智能手机销量榜首2023-04-22

天天实时:淄博烧烤火出圈,里面有你不知道的必然性

“淄博烧烤火了”这件事已然全国人尽皆知,名不见经传的工业老城,何以凭借个串串火出圈让大众感到不可思议,纷纷认为淄博背后有高人指点,也2023-04-22

科网股份2022年净利217.59万 同比下滑20.54% 世界今热点

挖贝网4月21日,科网股份(870150)近日发布2022年年度报告,报告期内公司实现营业收入74,386,622 22元,同比下滑19 62%;归属于挂牌公司2023-04-22

老版的迷你世界在哪下_迷你世界老版本怎么下载_世界热门

解答:1、首先你需要在手机里下载一个手机PP助手。2、但是,在搜索中输入迷你世界,迷你世界出现后,你会看到一个版本历史,2023-04-22

每日消息!2022辽宁工程技术大学招聘高层次人才拟聘人员公示(第八批)

根据《辽宁工程技术大学2022年公开招聘高层次人才公告》,现将辽宁工程技术大学2022年公开招聘高层次人才(第八批)拟聘2023-04-22

心墙吉他谱c调简单版视频 心墙吉他谱c调 视点

今天来聊聊关于心墙吉他谱c调简单版视频,心墙吉他谱c调的文章,现在就为大家来简单介绍下心墙吉他谱c调简单版视频,心墙吉他2023-04-22

时尚可持续发展问题的一个平淡无奇的解决方案

当涉及到危害环境的做法时,时装业早就应该改变风格了。科学期刊《自然评论地球与环境》2020年的一篇评论文章描绘了一幅2023-04-22

股价年内累跌超30% 呷哺呷哺(00520)能否把握消费复苏的契机

4月21日,呷哺呷哺(00520)收跌6 26%,报5 99港元,总市值约65亿港元。2023-04-22

讯息:吃核桃会发胖吗最近正在减肥_吃核桃会发胖

1、对于“吃核桃会胖吗”的疑问,答案是,适量吃核桃是不会胖的。2、核桃是一种营养价值非常高的坚果,富含蛋白质、脂肪、维生2023-04-22

洗衣机怎么清洗污垢(panasonic洗衣机怎么清洗污垢)|焦点资讯

1、首先将洗衣机的洗涤剂添加盒打开;2、加入混合好的除垢剂溶液;3、让洗衣机开始运行;4、运行大概半个小时之后,洗衣机内的除垢液会从排水2023-04-22

时讯:短命

1、短命,汉语词语,拼音是duǎnmìng,意思是寿命短促,死得早。2、。2023-04-22