RocketMQ-六大场景实操指南
- 普通消息
- 创建Topic
- 创建Group
- 测试消息收发
- 定时消息
- 创建Topic
- 创建Group
- 消息发送
- 事务消息
- 创建Topic
- 创建Group
- 消息收发
- 顺序消息
- 创建Topic
- 创建Group
- 消息收发
- 另外两大场景
- 消息异常运维
- 体验感受
- 初次体验
- 给小白新手的建议
- 进阶体验
- 应用场景
关于云消息队列 RocketMQ 版的基本概念及相关基本概念我们可以直接查阅官方文档即可,概念比较容易理解,这里就不再多说了,官方文档地址:产品概述,下面我们就直接开始上手操作吧。
普通消息
打开云消息队列RocketMQ控制台:https://ons.console.aliyun.com/overview ,开通免费试用及创建实例的操作比较简单,这里不作为重点展示,下面我们开始创建普通消息。
创建Topic
点击控制台【实例列表】-【实例名称】进入实例详情页
点击【Topic管理】-【创建Topic】,输入 名称、描述,选择【普通消息】
点击【确定】完成Topic的创建。
创建Group
点击【Group管理】-【创建Group】打开创建Group页面,输入 Group ID、描述,选择【并发投递】
点击【确定】完成Group的创建。
测试消息收发
实例代码可以参考官方文档:
编写消息生产者和消费者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
收发消息的截图
到这里,云消息队列RocketMQ的普通消息的操作就完成了,是不是很简单很容易理解呢?
定时消息
打开RocketMQ控制台:https://ons.console.aliyun.com/overview 开始定时消息的操作
创建Topic
点击【实例名称】进入实例详情,点击【Topic管理】-【创建Topic】
输入 名称、描述,选择【定时/延时消息】的消息类型,点击【确定】完成Topic创建。
创建Group
输入Group ID、描述,选择【并发投递】
点击【确定】完成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
消息发送截图
可以看到消息延时了10秒发送。
事务消息
事务消息的发送操作和上面普通消息、定时消息发送的操作流程基本一致,
创建Topic
点击【实例名称】-【Topic管理】-【创建Topic】打开创建Topic页面
输入 名称、描述,选择【事务消息】,点击【确定】完成Topic的创建。
创建Group
如图输入Group ID、描述,创建Group
消息收发
回到【Topic管理】,选择topic03列表右边的【更多】
点击【消息一键收发体验】
点击【发送事务消息】
输入消息内容,点击【运行】,可以通过点击右侧tab 【运行结果】来查看消息收发情况。
顺序消息
点击实例列表 RocketMQ实例名称进入实例详情页,
创建Topic
点击【Topic管理】-【创建Topic】输入Topic名称、描述,选择消息类型为【顺序消息】
创建Group
点击【Group管理】-【创建Group】,输入Group ID、描述,选择消息类型为【顺序消息】
创建完成后回到Topic管理
消息收发
回到Topic管理,选择刚才创建的topic04,点击【更多】-【消息一键收发体验】
选择【发送顺序消息】
在打开的页面输入消息组group04,消息内容 hello,点击【运行】,通过【运行结果】查看消息发送情况
另外两大场景
另外两大场景,消息堆积场景和消息失败重投场景的Topic和Group相关操作和普通消息的操作是一样的,只是在【Topic管理】-【更多】-【消息一键收发体验】后的选择不同
下面我们来体验一下消息异常运维排查场景
消息异常运维
消息异常运维,创建Topic和Group的方法参考普通消息的创建流程即可,创建完成之后在体验场景下云服务器ECS输入
java -cp demo.jar -Dendpoints=rmq-cn-lbj3b9ujx0s-vpc.cn-hangzhou.rmq.aliyuncs.com:8080 -Dtopic=topic05 -Dgroup=group05 workshop.ConsumeLagDemo
我们可以看到模板代码输出结果图
回到RocketMQ实例详情页面,点击【消息轨迹】,输入Message Key 查询消息发送记录
点击【消息轨迹】进入消息轨迹页面
可以看到【生产者】、【消费者】的信息以及消费的消息数据,点击【消费者】的group05可以看到消息的轨迹记录
到这里关于云消息队列 RocketMQ 版 的6大场景以及消息异常运维的操作的相关内容就全部操作完成了。
体验感受
初次体验
初次体验云消息队列RocketMQ版的6大场景,对于小白新手来说在操作上可以说也没有太大的难度,6大场景在创建Topic和Group的操作上基本一致,这就可以省去很多新手学习的成本,很不错。另外官方文档也提供了新手
,方便小白新手快速掌握RocketMQ的基础操作。
给小白新手的建议
通过对云消息队列RocketMQ 6 大场景的体验,对于小白新手我想说的是,不要因为RocketMQ对于你们来说是一款新产品就觉得会投入较多的学习成本,耽误时间;同样也不要因为你在日常工作中可能用到消息队列的地方不多而放弃这次体验RocketMQ的机会;可以说云消息队列RocketMQ对于6大场景的体验,不但提供了官方的视频操作步骤:
,也同样提供了实验室场景来供你体验,最重要的是这款产品本身设计的很容易上手,操作难度可以说是儿童级,完全没有浪费时间的可能,欢迎大家一起来学习交流吧。
进阶体验
在场景体验中,用到了相关发送消息的demo代码,根据个人接入阿里系钉钉API SDKdemo代码的经验,阿里系产品的SDK往往都封装好并且提供了demo代码,代码的注释往往也很详尽,正如官方文档提供的生产消息代码一样
只要你需要,接入本地项目可以直接将demo代码复制到你的项目中去,引入对应的maven配置就可以了。如果想要参考更多示例代码,也可以参考官方文档:
应用场景
云消息队列RocketMQ不同场景消息类型有不同的应用场景,结合公司业务来看,随着公司业务的不断庞大,系统的不断细化,系统之间数据一致性的要求就变得难以实现,那么如何保证跨系统数据一致性呢?云消息队列RocketMQ的事务消息就可以支持在分布式场景下保障消息生产和本地事务的最终一致性,那么对于这一点,无疑为保证公司业务系统数据一致性,或者说保证分布式系统数据一致性提供了保障,这就是可以为公司带来的价值,更多的RocketMQ事务消息内容的介绍及功能原理可以参考文档:事务消息。
对于RocketMQ事务消息,解决了传统XA事务方案的性能不足问题,同时也解决了另外一种分布式事务保障方案-基于普通消息方案的一致性保障困难问题。通过云消息队列 RocketMQ 版实现的分布式事务消息功能,在普通消息基础上,支持二阶段的提交能,将二阶段提交和本地事务绑定,实现全局提交结果的一致性,实现事务的最终一致性,在性能上优于传统事务保障方案,同时具备可拓展,业务开发简单的优势。目前个人使用过程中还未有待改进的地方,后续如果有的话会再提出的。