首页
搜索 搜索
当前位置:快讯 > 正文

使用 Spring Cloud Bus 在微服务之间传递消息示例

2023-04-21 16:06:26 腾讯云


(资料图片仅供参考)

下面是一个完整的示例,演示如何使用 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

电量变送器的工作原理是什么?电量变送器的优点是什么? 当前热点

城市头条网 2023-04-18

2023年4月18日ETF黄金最新净持仓量数据 环球短讯

金投网 2023-04-18

2020广州云台花园在哪预约 2021广州云台花园预约|每日观察

互联网 2023-04-18

中国移动据悉正探讨收购香港宽频的可能性 尚未决定是否提出正式收购要约|世界实时

界面新闻 2023-04-18

环球短讯!中专生逆袭成教授,奋斗人生更出彩

河南日报 2023-04-18

环球新消息丨成都都市圈重大项目建设一季度“开门红” 完成年度投资305亿元

互联网 2023-04-18

8000 万并购加速布局 AIGC,华策打响影视行业第一枪 前沿热点

钛媒体 2023-04-18

每日短讯:洛阳选派的66名校级干部将到教育先进地区开展跟班学习

洛阳网 2023-04-18

工信部公布《免征车辆购置税的新能源汽车车型目录》(第六十四批) 世界观点

同花顺财经 2023-04-18

柿子要放冰箱吗(柿子放冰箱可以吗)

互联网 2023-04-18

全球今亮点!如何使用受电弓

太平洋礼物网 2023-04-18

试驾体验启辰大V DDi 的超混动实力,远不止一点快乐

搜狐汽车 2023-04-18

手工制茶赛技能

中工网-工人日报 2023-04-18

夜光明:2022年归母净利润下降2.6%,小于营收降幅

东方财富Choice数据 2023-04-17

世界时讯:警惕!体重飙升后高强度运动减重,长沙260斤体育老师运动后说话不清突发中风

潇湘晨报 2023-04-17

原油实时行情分析:国际油价持稳 NYMEX原油短线上看83.24美元

指股网 2023-04-17

全球百事通!新发现! 小学生又“立功”了

绿色青浦 2023-04-17

每秒16万公里,“精准爆破”肿瘤 武汉“质子刀”安装调试提速 当前动态

湖北日报 2023-04-17

【环球聚看点】乡村爱情长贵是哪一部哪一集死的_是怎么死的呢

互联网 2023-04-17

漳州出台24条举措优化营商环境

闽南日报 2023-04-17

美国近8成父母忧枪支暴力,民意共识禁AR-15步枪-世界最资讯

星岛环球网 2023-04-17

能源行业加快谋划出台新政策新举措 为中国式现代化建设提供坚强能源保障

中国发展网 2023-04-17

全球微速讯:东北证券:全面推进业务数字化转型,经营业绩大幅提升

中金在线财经号 2023-04-17

韩国将派经济代表团访问匈牙利、波兰和斯洛伐克 加强电池等领域合作会谈

韩联社 2023-04-17

全球速读:赵本山58岁妻子近照曝光,素颜出镜与女儿球球同框

新浪娱乐 2023-04-17

【环球播资讯】宋慧乔和韩素希确认出演悬疑复仇剧《自白的代价》

劳资蜀道三 2023-04-17

IVE首张正式专辑《I've IVE》初动销量破百万!成为第三个初动销量破百万女团 世界报道

搜狐韩娱 2023-04-17

环球观焦点:杭州萧山国际机场回应航站楼冒烟:无人员受困及受伤

中国新闻网 2023-04-17

最新驾校季度安全工作总结(热门9篇)|世界热资讯

互联网 2023-04-17

如何为欢送会制作节目 当前速讯

太平洋礼物网 2023-04-17

山东济宁加快创建国家区域医疗中心-全球信息

新京报 2023-04-17

马丁的早晨主题曲mp3_马丁的早晨主题曲_独家焦点

互联网 2023-04-16

正是好“枫”景,韶关南雄300亩红枫迎春“绽放”

羊城派 2023-04-16

当前报道:智慧农业迎来“观光客”

经济日报新闻客户端 2023-04-16

金婚纪念日的意义是什么?|讯息

太平洋礼物网 2023-04-16

半程马拉松男女冠军成绩出炉

极目新闻 2023-04-16

全球降水星家族首添“中国造” 向世界贡献中国力量_今日最新

央视网 2023-04-16

最新消息:产品渠道融合共生,容声冰箱与苏宁易购深化战略合作

砍柴网 2023-04-16

松江第一人民医院网_松江第一人民医院官网

科学教育网 2023-04-16

全球新资讯:看起来像玻璃的岩石_送14岁的男生什么生日礼物比较好一些

趣礼物 2023-04-16

开奶!国王资深现场主播:勇士是王朝队 他们想成为湖人、绿军

直播吧 2023-04-16

极光世界加10套花多少钱_极光世界花钱吗-全球热点

互联网 2023-04-16