【spring cloud streamMQ】采用新版 spring 官方推荐 streamBridge 生产消费 streamMQ 示例

news/2025/1/13 2:41:58/

🌸 spring 官方推荐使用 streamBridge 生产消费 streamMQ 示例 🌸

官方demo:https://github.com/spring-cloud/spring-cloud-stream-samples/blob/main/streambridge-samples/stream-bridge-avro/src/main/java/com/example/stream/bridge/avro/StreamBridgeAvroApplication.java

🌸 一、yaml配置

  • 生产者配置
spring:cloud:stream:function:# 重点配置 与 binding 名与消费者对应,多个可以使用;definition: cusnotification;projectmappingbindings:projectmapping-out-0:content-type: application/jsondestination: projectmapping-test-topicgroup: test-groupbinder: rocketmqrocketmq:binder:# RocketMQ 服务器地址name-server: 192.168.1.102:9876bindings:projectmapping-out-0:producer:# 必须得写group: defaultcusnotification-out-0:producer:# 必须得写group: cusnotification-group
  • 消费者
spring:cloud:stream:function:# 重点配置 与 binding 名与消费者对应,多个可以使用;definition: projectmapping;cusnotificationbindings:projectmapping-in-0:content-type: application/jsondestination: projectmapping-test-topicgroup: test-groupbinder: rocketmq# Spring Cloud Stream RocketMQ 配置项rocketmq:# RocketMQ Binder 配置项,对应 RocketMQBinderConfigurationProperties 类106.15.139.83binder:name-server: 192.168.1.102:9876 # RocketMQ Namesrv 地址# RocketMQ 自定义 Binding 配置项,对应 RocketMQBindingProperties Mapbindings:projectmapping-in-0:# RocketMQ Consumer 配置项,对应 RocketMQConsumerProperties 类consumer:enabled: true # 是否开启消费,默认为 truebroadcasting: false # 是否使用广播消费,默认为 false 使用集群消费orderly: true # 是否顺序消费,默认为 false 并发消费。

🌸 二、生产消费

  • 消息配置
    • 注意规范配置,不推荐直接写,容易出错。
    • 注意规范配置,不推荐直接写,容易出错。
    • 注意规范配置,不推荐直接写,容易出错。
public class MessageConstant {/*** 添加项目映射消息*/public static final String PROJECT_MAPPING = "projectmapping" + SplitStrConst.LINE;/*** 生产者标识*/public static final String OUTPUT = "out" + SplitStrConst.LINE + SplitStrConst.ZERO;/*** 项目映射消息生产者*/public static final String PROJECT_MAPPING_OUTPUT = PROJECT_MAPPING + OUTPUT;
}
  • 消息载体
    • 可以按要求更换,推荐带上消息唯一ID。
@Data
@Accessors(chain = true)
public class CommonMessaging {/*** 消息id*/private String msgId;/*** 消息内容*/private String msgText;
}
  • 生产者生产消息
    • 消息载体自动构建,不要再使用json互转,可直接消费,推荐带上消息唯一ID。
  private final StreamBridge streamBridge;public void streamTestMsg(String msg) {// 构建消息对象CommonMessaging testMessaging = new CommonMessaging().setMsgId(UUID.randomUUID().toString()).setMsgText(msg);streamBridge.send(MessageConstant.PROJECT_MAPPING_OUTPUT, MessageBuilder.withPayload(testMessaging).build());}
  • 消费者消费
    • 注意一个消费者只使用一个类
    • 注意方法名称即队列名称,不可随意改动
    • lambda消费,可直接获取消息题,不要再使用json互转
    • 注意log打印
@Component
@Slf4j
public class ProjectMappingConsumer {@BeanConsumer<CommonMessaging> projectmapping() {log.info("projectmapping 初始化订阅成功。");return msg -> {log.info("[onMessage][线程编号:{} 消息内容:{}]", Thread.currentThread().getId(), msg.toString());System.out.println(msg.getMsgText());};}
}

http://www.ppmy.cn/news/263924.html

相关文章

1356 :斐波那契数列中的合数(基础程序设计,for循环,函数)

题目描述 斐波那契数列是一个形如下面的数列&#xff1a; 1,1,2&#xff0c;3,5,8,13,21,34,55,89…… 从第3项开始&#xff0c;有&#xff1a;f(n)f(n-1)f(n-2) 在这个数列中&#xff0c;有些数是合数&#xff0c;比如8、21、34等&#xff0c;有些数是素数&#xff0c;比如…

HashMap 的底层原理和源码分析

tip&#xff1a;作为程序员一定学习编程之道&#xff0c;一定要对代码的编写有追求&#xff0c;不能实现就完事了。我们应该让自己写的代码更加优雅&#xff0c;即使这会费时费力。 推荐&#xff1a;体系化学习Java&#xff08;Java面试专题&#xff09; 文章目录 一、HashMap…

MySQL高可用集群解决方案之:MySql Cluster搭建

MySQL是当前使用最广泛的关系型数据库管理系统之一&#xff0c;但MySQL在高并发访问和大量数据处理方面存在较为明显的性能瓶颈。为了解决MySQL单点故障带来的不便和可扩展性问题&#xff0c;我们需要构建稳定性极高的MySQL集群方案。本文将介绍一种快速搭建MySQL集群的解决方案…

不同键盘

AltGr A→和 AltGr E→和 AltGr I→和 AltGr O→和 AltGr U→和 AltGr 4→€ AltGr /→ 在英国和爱尔兰的键盘布局中&#xff0c;大多数需要AltGr键的键盘上仅有的两个符号是&#xff1a;€欧元货币符号。位于“ 4 / $”键上。 |是竖线&#xff08;“管道符号”&#xf…

程序员必备神器机械键盘,真香!

在北半球&#xff0c;3月是春季的第一个月&#xff0c;春天象征着希望和美好。关注我的读者大多数都是&#xff08;程序&#xff09;猿&#xff0c;所以好用的键盘必不可少&#xff01;今天为了感谢大家对本公众号的大力支持我联合了10个号主送11个炫酷键盘&#xff0c;不爱可折…

键盘崇拜

原文地址&#xff1a;http://www.codinghorror.com/blog/2010/10/the-keyboard-cult.html 作为一个把一天大部分时间花在打字的人来说&#xff0c;我很难认真对待触摸设备。我喜爱我的iPhone4&#xff0c;而且智能手机是终级的随身装备&#xff0c;但是触摸屏对在设备上创作任…

DIYer 教你如何选购键盘

随着社会的发展,人民生活水平的提高,电脑似乎不在是神话了,每家几乎都有电脑,那自然也少不了键盘,您每天都在使用键盘,那么您对您的键盘了解多少呢 首先如何购买呢? 键盘作为最经典的输入设备&#xff0c;它是电脑必不可少的部件之一。很多用户在购买键盘的时候似乎不够重视&a…

作为一名程序猿应如何入手一款实用 + 炫酷的键盘(keychron)

作为一名程序猿应如何入手一款实用 炫酷的键盘&#xff08;keychron&#xff09; 1. 个人使用感受2. keychron 产品背景3. 产品特点有线&蓝牙Keychron的Mac键盘布局兼容所有设备系统 4. 入手 keychron 的几个重要方面&#xff01;机械键盘轴体键盘配件 5. keychron 开箱体…