RocketMQ-六大场景实操指南

简介: 介绍RocketMQ 六大场景 普通消息场景、定时消息场景、事务消息场景、顺序消息场景、消息堆积场景、消息失败重投场景、消息异常运维 的实操步骤

关于云消息队列 RocketMQ 版的基本概念及相关基本概念我们可以直接查阅官方文档即可,概念比较容易理解,这里就不再多说了,官方文档地址:产品概述,下面我们就直接开始上手操作吧。

普通消息

打开云消息队列RocketMQ控制台:https://ons.console.aliyun.com/overview ,开通免费试用及创建实例的操作比较简单,这里不作为重点展示,下面我们开始创建普通消息。

创建Topic

点击控制台【实例列表】-【实例名称】进入实例详情页

image.png

点击【Topic管理】-【创建Topic】,输入 名称、描述,选择【普通消息】

image.png点击【确定】完成Topic的创建。

创建Group

点击【Group管理】-【创建Group】打开创建Group页面,输入 Group ID、描述,选择【并发投递】

image.png

点击【确定】完成Group的创建。

测试消息收发

实例代码可以参考官方文档:调用SDK收发消息 编写消息生产者和消费者demo代码,这里我是在实验室环境下操作demo代码,消费者命令

java -cp demo.jar -Dendpoints=rmq-cn-wwo3b8d7m0u-vpc.cn-hangzhou.rmq.aliyuncs.com:8080 -Dtopic=topic01 -Dgroup=group01  workshop.ConsumeMessageDemo

生产者命令

java -cp demo.jar -Dendpoints=rmq-cn-wwo3b8d7m0u-vpc.cn-hangzhou.rmq.aliyuncs.com:8080 -Dtopic=topic01 -Dnum=10  workshop.ProduceMessageDemo

收发消息的截图

image.png

image.png

到这里,云消息队列RocketMQ的普通消息的操作就完成了,是不是很简单很容易理解呢?

定时消息

打开RocketMQ控制台:https://ons.console.aliyun.com/overview 开始定时消息的操作

创建Topic

点击【实例名称】进入实例详情,点击【Topic管理】-【创建Topic】

image.png

输入 名称、描述,选择【定时/延时消息】的消息类型,点击【确定】完成Topic创建。

创建Group

输入Group ID、描述,选择【并发投递】

image.png

点击【确定】完成Group的创建。

消息发送

输入已经准备好的定时消息发送demo代码的命令

java -cp demo.jar -Dendpoints=rmq-cn-lbj3b8e5y0n-vpc.cn-hangzhou.rmq.aliyuncs.com:8080  -Dtopic=Topic02 -Dgroup=Group02 -DdelaySecond=10-Dnum=10 workshop.DelayMessageDemo

消息发送截图

image.png

可以看到消息延时了10秒发送。

事务消息

事务消息的发送操作和上面普通消息、定时消息发送的操作流程基本一致,

创建Topic

点击【实例名称】-【Topic管理】-【创建Topic】打开创建Topic页面

image.png

输入 名称、描述,选择【事务消息】,点击【确定】完成Topic的创建。

创建Group

如图输入Group ID、描述,创建Group

image.png

消息收发

回到【Topic管理】,选择topic03列表右边的【更多】

image.png

点击【消息一键收发体验】

image.png

点击【发送事务消息】

image.png

输入消息内容,点击【运行】,可以通过点击右侧tab 【运行结果】来查看消息收发情况。

顺序消息

点击实例列表 RocketMQ实例名称进入实例详情页,

创建Topic

点击【Topic管理】-【创建Topic】输入Topic名称、描述,选择消息类型为【顺序消息】

image.png

创建Group

点击【Group管理】-【创建Group】,输入Group ID、描述,选择消息类型为【顺序消息】

image.png

创建完成后回到Topic管理

消息收发

回到Topic管理,选择刚才创建的topic04,点击【更多】-【消息一键收发体验】

image.png

选择【发送顺序消息】

image.png

在打开的页面输入消息组group04,消息内容 hello,点击【运行】,通过【运行结果】查看消息发送情况

image.png

另外两大场景

另外两大场景,消息堆积场景和消息失败重投场景的Topic和Group相关操作和普通消息的操作是一样的,只是在【Topic管理】-【更多】-【消息一键收发体验】后的选择不同

image.png

下面我们来体验一下消息异常运维排查场景

消息异常运维

消息异常运维,创建Topic和Group的方法参考普通消息的创建流程即可,创建完成之后在体验场景下云服务器ECS输入

java -cp demo.jar -Dendpoints=rmq-cn-lbj3b9ujx0s-vpc.cn-hangzhou.rmq.aliyuncs.com:8080  -Dtopic=topic05 -Dgroup=group05   workshop.ConsumeLagDemo

我们可以看到模板代码输出结果图

image.png

回到RocketMQ实例详情页面,点击【消息轨迹】,输入Message Key 查询消息发送记录

image.png

点击【消息轨迹】进入消息轨迹页面

image.png

可以看到【生产者】、【消费者】的信息以及消费的消息数据,点击【消费者】的group05可以看到消息的轨迹记录

image.png

到这里关于云消息队列 RocketMQ 版 的6大场景以及消息异常运维的操作的相关内容就全部操作完成了。

体验感受

初次体验

初次体验云消息队列RocketMQ版的6大场景,对于小白新手来说在操作上可以说也没有太大的难度,6大场景在创建Topic和Group的操作上基本一致,这就可以省去很多新手学习的成本,很不错。另外官方文档也提供了新手快速入门文档,方便小白新手快速掌握RocketMQ的基础操作。

给小白新手的建议

通过对云消息队列RocketMQ 6 大场景的体验,对于小白新手我想说的是,不要因为RocketMQ对于你们来说是一款新产品就觉得会投入较多的学习成本,耽误时间;同样也不要因为你在日常工作中可能用到消息队列的地方不多而放弃这次体验RocketMQ的机会;可以说云消息队列RocketMQ对于6大场景的体验,不但提供了官方的视频操作步骤:视频,也同样提供了实验室场景来供你体验,最重要的是这款产品本身设计的很容易上手,操作难度可以说是儿童级,完全没有浪费时间的可能,欢迎大家一起来学习交流吧。

进阶体验

在场景体验中,用到了相关发送消息的demo代码,根据个人接入阿里系钉钉API SDKdemo代码的经验,阿里系产品的SDK往往都封装好并且提供了demo代码,代码的注释往往也很详尽,正如官方文档提供的生产消息代码一样

image.png

只要你需要,接入本地项目可以直接将demo代码复制到你的项目中去,引入对应的maven配置就可以了。如果想要参考更多示例代码,也可以参考官方文档:文档

应用场景

云消息队列RocketMQ不同场景消息类型有不同的应用场景,结合公司业务来看,随着公司业务的不断庞大,系统的不断细化,系统之间数据一致性的要求就变得难以实现,那么如何保证跨系统数据一致性呢?云消息队列RocketMQ的事务消息就可以支持在分布式场景下保障消息生产和本地事务的最终一致性,那么对于这一点,无疑为保证公司业务系统数据一致性,或者说保证分布式系统数据一致性提供了保障,这就是可以为公司带来的价值,更多的RocketMQ事务消息内容的介绍及功能原理可以参考文档:事务消息

对于RocketMQ事务消息,解决了传统XA事务方案的性能不足问题,同时也解决了另外一种分布式事务保障方案-基于普通消息方案的一致性保障困难问题。通过云消息队列 RocketMQ 版实现的分布式事务消息功能,在普通消息基础上,支持二阶段的提交能,将二阶段提交和本地事务绑定,实现全局提交结果的一致性,实现事务的最终一致性,在性能上优于传统事务保障方案,同时具备可拓展,业务开发简单的优势。目前个人使用过程中还未有待改进的地方,后续如果有的话会再提出的。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
4月前
|
消息中间件 存储 数据库
RocketMQ 流存储解析:面向流场景的关键特性与典型案例
RocketMQ 流存储解析:面向流场景的关键特性与典型案例
88521 8
|
10月前
|
消息中间件 弹性计算 Java
使用阿里云性能测试工具 JMeter 场景压测 RocketMQ 最佳实践
使用阿里云性能测试工具 JMeter 场景压测 RocketMQ 最佳实践
1199 6
|
4月前
|
消息中间件 前端开发 数据库
RocketMQ实战教程之MQ简介与应用场景
RocketMQ实战教程介绍了MQ的基本概念和应用场景。MQ(消息队列)是生产者和消费者模型,用于异步传输数据,实现系统解耦。消息中间件在生产者发送消息和消费者接收消息之间起到邮箱作用,简化通信。主要应用场景包括:1)应用解耦,如订单系统与库存系统的非直接交互;2)异步处理,如用户注册后的邮件和短信发送延迟处理,提高响应速度;3)流量削峰,如秒杀活动限制并发流量,防止系统崩溃。
|
1月前
|
消息中间件 固态存储 RocketMQ
RocketMQ消息堆积常见场景与处理方案
文章分析了在使用RocketMQ时消息堆积的常见场景,如消费者注册失败或消费速度慢于生产速度,并提供了相应的处理方案,包括提高消费并行度、批量消费、跳过非重要消息以及优化消费代码业务逻辑等。
|
2月前
|
消息中间件 存储 RocketMQ
MetaQ/RocketMQ 原理问题之在解耦场景中,消息队列工作的问题如何解决
MetaQ/RocketMQ 原理问题之在解耦场景中,消息队列工作的问题如何解决
|
4月前
|
消息中间件 SQL 容灾
深度剖析 RocketMQ 5.0,消息进阶:如何支撑复杂业务消息场景?
本文主要学习 RocketMQ 的一致性特性,一致性对于交易、金融都是刚需。从大规模复杂业务出发,学习 RocketMQ 的 SQL 订阅、定时消息等特性。再从高可用的角度来看,这里更多的是大型公司对于高阶可用性的要求,如同城容灾、异地多活等。
108496 287
|
3月前
|
消息中间件 存储 运维
RocketMQ与Kafka深度对比:特性与适用场景解析
RocketMQ与Kafka深度对比:特性与适用场景解析
|
3月前
|
消息中间件 Serverless Windows
消息队列 MQ产品使用合集之MQTT协议是否可以应用于社交软件的系统通知场景
阿里云消息队列MQ(Message Queue)是一种高可用、高性能的消息中间件服务,它允许您在分布式应用的不同组件之间异步传递消息,从而实现系统解耦、流量削峰填谷以及提高系统的可扩展性和灵活性。以下是使用阿里云消息队列MQ产品的关键点和最佳实践合集。
|
4月前
|
消息中间件 Cloud Native 物联网
深度剖析 RocketMQ 5.0,消息基础:RocketMQ 在业务消息场景的基础优势是什么?
本文主要介绍业务消息的应用解耦场景,具体解耦什么? RocketMQ 在业务消息场景的基础特性。业界那么多消息队列能实现应用解耦,RocketMQ 在基础特性上有哪些增强?
125435 2
深度剖析 RocketMQ 5.0,消息基础:RocketMQ 在业务消息场景的基础优势是什么?
|
4月前
|
消息中间件 存储 Cloud Native
深度剖析 RocketMQ 5.0,架构解析:云原生架构如何支撑多元化场景?
了解 RocketMQ 5.0 的核心概念和架构概览;然后我们会从集群角度出发,从宏观视角学习 RocketMQ 的管控链路、数据链路、客户端和服务端如何交互;学习 RocketMQ 如何实现数据的存储,数据的高可用,如何利用云原生存储进一步提升竞争力。
140944 3