RocketMQ集成Springboot --Chapter3

news/2024/11/27 21:43:00/

RocketMQ实现顺序消息

实际开发中如果没有顺序消费的必要需求,不建议使用顺序消费,顺序消费是单线程的效率比较低。

代码示例

-------生产者
生产者主要设置队列选择器在里面写选择队列的逻辑,通过取模进行选取, rocketMQTemplate.sendOneWayOrderly(“orderlyTopicBoot”,msg,String.valueOf(step.getOrderId()));

    /***生产者代码* 顺序消费*/@Testpublic void sendOlderlyMsg(){//设置队列选择器rocketMQTemplate.setMessageQueueSelector(new MessageQueueSelector() {@Overridepublic MessageQueue select(List<MessageQueue> list, org.apache.rocketmq.common.message.Message message, Object o) {String orderIdStr = (String) o;long orderId = Long.parseLong(orderIdStr);int index = (int) (orderId % list.size());return list.get(index);}});List<OrderStep> orderSteps = OrderUtil.buildOrders();for (OrderStep step : orderSteps) {Message<String> msg = MessageBuilder.withPayload(step.toString()).build();rocketMQTemplate.sendOneWayOrderly("orderlyTopicBoot",msg,String.valueOf(step.getOrderId()));}}

-------消费者
只需要在@RocketMQMessageListener注解中指定一下消费模式为顺序消费即可开启单线程消费consumeMode = ConsumeMode.ORDERLY

    /**** 顺序消费*/
@Component
@RocketMQMessageListener(consumerGroup = "olderConsumerBoot",topic = "orderlyTopicBoot",consumeMode = ConsumeMode.ORDERLY)
public class OlderlyTopicListener implements RocketMQListener<MessageExt> {@Overridepublic void onMessage(MessageExt messageExt) {System.out.println("当前线程:"+Thread.currentThread()+"队列ID:"+messageExt.getQueueId()+",消息内容:"+new String(messageExt.getBody(), Charset.defaultCharset()));}
}

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

相关文章

easyExcel单元格换行

1、单元格数据样例&#xff1a; 你好\r\n大家好\r\n 2、增加单元格拦截器 /*** excel换行符处理*/ Slf4j public class WrapCellWriteHandler implements CellWriteHandler {Overridepublic void afterCellDispose(CellWriteHandlerContext context) {Cell cell context.get…

WPF中Binding使用StringFormat格式化字符串方法

货币格式 <TextBlock Text"{Binding Price, StringFormat{}{0:C}}" /> // $123.46货币格式&#xff0c;一位小数 <TextBox Text"{Binding Price, StringFormat{}{0:C1}}" /> // $123.5前文字 <TextBox Text"{Binding Price, String…

istio安装部署总结

istio安装部署总结 大纲 istio基础概念版本选择安装istio核心主件卸载istiokiali安装 istio基础概念 https://istio.io/latest/zh/docs/ 中文文档 istio是一个服务治理平台&#xff0c;治理服务间的访问&#xff0c;&#xff08;例如流量控制&#xff0c;安全策略&#xf…

c语言sizeof运算符的理解和使用

文章目录 1 sizeof作用2 sizeof使用形式3 sizeof使用示例3.1 基本数据类型3.2 变量3.3 指针变量3.4 数组3.5 结构体3.6 联合体 >>返回总目录<< 1 sizeof作用 sizeof是C语言的一种单目操作符&#xff0c;如C语言的其他操作符、–等。它并不是函数。sizeof操作符以…

详解CMakeLists.txt

在前一篇文章 esp32 初识 cmake 构建工具 中&#xff0c;已经用"hellow world"程序介绍了cmake最基本的用法&#xff0c;今天详细讲解CMakeLists.txt文件。 CMakeLists.txt CMakeLists.txt文件是CMake构建工具的核心配置文件。它包含了构建项目所需的一系列指令和参…

深度学习(一)

目录 一、特征工程的作用 二、深度学习的应用 三、得分函数 四、损失函数 五、前向传播 六、反向传播 一、特征工程的作用 数据特征决定了模型的上限预处理和特征提取是最核心的算法与参数选择决定了如何逼近这个上限 二、深度学习的应用 无人驾驶人脸识别分辨率重构 深…

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)六:后台主页功能实现下

一、本章内容 接上一章,继续实现后端主页内容,主要实现工具栏对应相关内容的实现,包括系统消息、系统公告、全屏切换、语言切换、主题切换等。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预览 三、开发视频 基于VUE3+Layui从头搭建通用后台管理系统合集…

国内十大精准的现货黄金价格走势图软件最新排名(综合版)

选择国内现货黄金价格走势图软件时&#xff0c;需要考虑几个因素。首先&#xff0c;软件的稳定性和可靠性至关重要。应选择有良好声誉和长期稳定运行的平台&#xff0c;以确保价格数据的准确性和及时性。其次&#xff0c;要选择功能齐全的软件。较为优秀的软件应该提供多种技术…