顺序消息消费者|学习笔记

简介: 快速学习顺序消息消费者

开发者学堂课程【RocketMQ知识精讲与项目实战(第一阶段)顺序消息消费者】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/702/detail/12383


顺序消息消费者


内容介绍

一、 编写代码

二、 测试

三、 结果

四、 总结

 

一、编写代码

现在编写一个 consumer 去消费

public class Consumer public static void main(String[] args) throws MQClientExceptio(

//基本代码拿过来

//1.创建消费者 Consumer,制定消费者组名DefaultMQPushConsumer consumer = new DefaultMQPushConsumer( consumerGroup:"group1");

//2.指定Nameserver地址consumer.setNamesrvAddr("192.168.25.135:9876192.168.25.138:9876");

//3.订阅主题 Topic 和 Tag

consumer.subscribe( topic: "orderTopic",subExpression:"*");

//4.注册消息监听器

consumer.registerMessageListener(new MessageListenerOrderly()

@Overridepublic ConsumeOrderlyStatus consumeNessage(List msgs, ConsumeOrderlyContext context) (

for (MessageExt msg : msgs)

System.out.println(”线程名称:T+Thread.currentThread().getName()+":"+new String(msg.getBody())); //扩展线程名称

return Consumeorderlystatus.sucess;

 

二、测试

写完后就可以测试了,先发送。

//发送消息

for (int i=e;icordersteps.size();i++) f

String body= ordersteps.get(i)+"";Message message= new Message( topic: "OrderTopic",tags: "Order",keys: "i"+i,body.getBytes());

参数一:消息对象

参数二:消息队列的选择器

参数三:选择队列的业务标识(订单 ID)SendResultsendResult = producer.send(message, new NessageQueueselector()(

@param mqs:队列集合

@param msg:消息对象

@param arg:业务标识的参数

@return

稍等一下,等待发送结果。

会看到打印结果:system.out.printin(发送结果:“+sendResult);

 

三、结果

关键是要看消费的结果。

//5.启动消费者

consumer.start();

System.out.print1n("消费者启动");

稍等一下消费者正在启动。

当结果出来后,查看同一个订单是否按着顺序消费,必须保证顺序性。此时整个流程就弄完了。

 

四、总结

对于消息发送者来说,基本流程和之前一样,无非是再发送消息时传了一个消息队列选择器,目的是为了再发送消息时选择一个固定对点,需要根据 id 去选择,返回

当前对点。消费者流程也是同之前没区别,只不过在注册消息监听器时,

用了一个 MessageListenerOrdenly ,用它的原因时因为我们是在针对同一个队列消息,采用单线程,一个队列只用一个线程去消费,这样就能保证消费的顺序性,

其他都没有区别,正常消费即可。

相关文章
|
监控 数据可视化 项目管理
CM模式是什么?如何应用?
CM 模式(Construction Management)即建设管理模式,起源于20世纪60年代的美国,通过专业的建设管理团队在项目早期介入,优化设计方案,协调各方资源,有效提升项目质量和进度控制。该模式已广泛应用于各类建筑工程,并不断创新发展,适应数字化、绿色建筑及国际化需求。未来,CM模式将继续推动建筑行业的进步。
1641 2
|
9月前
|
数据采集 数据可视化 搜索推荐
Quick BI 评测报告
本文详细记录了一名项目经理对阿里云Quick BI的全面评测过程。从申请试用账号到数据上传、数据集创建,再到可视化分析与智能功能体验,作者深入探讨了Quick BI的各项功能。文中提到Quick BI具备强大的数据处理能力和友好的用户界面,尤其在可视化和智能化方面表现出色。但同时也指出了数据清洗功能不足、图表配置有限及智能助手能力需提升等问题。整体而言,Quick BI是一款适合项目经理高效分析数据的工具,未来若能优化上述问题,将更具竞争力。
372 72
|
8月前
|
Python
Python中Cp、Cpk、Pp、Ppk的计算与应用
总的来说,Cp、Cpk、Pp、Ppk是衡量过程能力的重要工具,它们可以帮助我们了解和改进生产过程,提高产品质量。
802 13
|
8月前
|
消息中间件 NoSQL Java
RocketMQ实战—10.营销系统代码优化
本文主要介绍了如何对营销系统的四大促销场景的代码进行优化,包括:全量用户推送促销活动、全量用户发放优惠券、特定用户推送领取优惠券消息、热门商品定时推送。
|
存储 弹性计算 缓存
阿里云服务器价格表参考,不同实例规格云服务器月付及年付活动价格(2024更新)
阿里云租服务器一年多少钱?不同时期阿里云服务器的租用价格不同,进入2024年,阿里云继续推出各种云服务器优惠政策,轻量应用服务器2核2G 61元1年,2核4G 165元1年;云服务器2核2G3M只要99元1年,2核4G5M只要199元1年;4核16G月付只要26.52元1个月。本文为大家整理汇总了目前阿里云的活动中,所有云服务器的月付及年付价格情况,以表格形式展示给大家,以供参考。
阿里云服务器价格表参考,不同实例规格云服务器月付及年付活动价格(2024更新)
|
域名解析 缓存 网络协议
DNS解析过程详解
【10月更文挑战第11天】 DNS(域名系统)解析过程是将域名转换为IP地址的关键步骤。客户端输入域名后,本地DNS服务器先检查缓存,如有记录则直接返回IP地址;否则依次向根DNS服务器、顶级域名服务器和权威DNS服务器查询,最终获取并缓存IP地址,返回给客户端,实现域名解析。这一过程确保了用户通过域名方便访问互联网资源。
1001 59
|
缓存 网络协议 网络安全
计算机网络基础知识
本文介绍了计算机网络中的路由协议、HTTP协议、OSI七层模型、VLAN、TCP/UDP协议等内容。路由协议部分涵盖了NAT、OSPF、RIP、IGRP和BGP的基本概念和区别。HTTP协议部分详细解释了请求和响应的结构、常用方法、状态码、重定向和转发的区别、GET和POST的区别、Cookies和Session的区别、HTTP请求访问流程以及HTTP和HTTPS的区别。OSI七层模型部分简述了各层的功能。VLAN部分介绍了VLAN的工作原理和优势。TCP/UDP部分对比了两种协议的特点,重点讲解了TCP的三次握手和四次挥手过程及其作用。
|
存储 NoSQL Java
Java 使用 Redis
10月更文挑战第22天
284 0
|
算法 Linux
跟着Iris案例学Seaborn之Histplot
跟着Iris案例学Seaborn之Histplot
672 0
|
Dart API 开发工具
Flutter Android 14 强制升级说明 2024
猫哥我也是心大,当群友问我 flutter 如何升级编译 Android 14 时才发现需要提交新版本。
354 0
Flutter Android 14 强制升级说明 2024