RocketMQ入门
消息队列社区
RocketMQ试用
在活动首页点击立即试用,选择好地域、创建好专有网络VPC和交换机VSwitch信息,可参考创建专有网络和交换机,勾选同意协议,点击立即试用。如下图:
完成产品试用领取后,就可以进入控制台了,如下图:
本次产品体验活动提供了六个场景,普通消息、定时消息、事务消息、顺序消息、堆积消息、失败重投。接下来逐个开启体验。
RocketMQ体验
开始体验前,得先创建Topic和Group资源,用于发送消息和订阅消息。可在实例列表页面单击试用实例的名称,在左侧导航栏选择Topic 管理,然后在页面左上角单击创建 Topic。如下图:
普通消息场景
普通消息是RocketMQ的基本消息类型,是最简单也最重要的一种消息。创建Topic,如下图:
接着需要创建一个Group,点击Group管理,创建Group,如下图:
接下来就可以进行消息收发体验了,在Topic列表中,选择更多,点击消息一键收发体验。如下图:
用户也可以点击topic名称,进入详情页,点击消息一键收发体验。如下图:
在基础功能这里,点击发送普通消息,如下图:
输入需要发送的消息内容,点击运行,如下图:
稍等片刻,既可以看到运行结果,用户可查看消息详情、消息轨迹、指标大盘。如下图:
实验中提到了两种消费方式,一种是发送普通消息,一种是PushConsumer 方式消费,两者的差异在于是否需要指定消费组Group,发送普通消息无需指定即可完成消息的收发,而PushConsumer 方式则需要指定Group。
定时消息场景
定时消息顾名思义就是用户不希望发送消息后立马进行消费,而是等待片刻后进行订阅消费的场景。相较于普通消息场景,定时消息场景创建Topic时需要选择消息类型为”定时/延时消息“。如下图:
接着创建一个group,用来订阅消息,完成后点击消息一键收发体验,基础功能这里选择发送定时消息。如下图:
在定时消息设置页,选择延时方式为”指定延时时间“并设置延时时间为”10“,输入消息内容”hi,this is a message“,点击运行,如下图:
运行后消息并没有立刻消费,如下图:
待延时时间一到,再次点击查看消息详情,可看到已经被消费的消息内容,如下图:
事务消息场景
理解事务消息前,需要先了解什么是事务,比如一个电商交易,用户支付订单这一核心操作的同时会涉及到下游物流发货、积分变更、购物车状态清空等多个子系统的变更,也就是说一个核心业务逻辑的执行,同时需要调用多个下游业务进行处理。那如何保证核心业务和多个下游业务的执行结果完全一致呢?这就是”事务“存在的必要性,也是分布式需要解决的主要问题。体验事务消息场景,首先需要创建一个事务消息类型的Topic,如下图:
完成group创建后,点击消息一键发送体验,选择发送事务消息,如下图:
顺序消息场景
所谓顺序消息,就是先发送的先消费,后发送的后消费,严格按照FIFO(先进先出)原则的一种消息类型。创建Topic时,选择消息类型为顺序消息,如下图:
相较于其他消息类型,顺序消息创建Group时,投递的顺序性需要选择顺序投递,如下图:
消息堆积场景
实际业务场景中,经常会遇到由于主机性能不足导致消息非及时发送或消费的问题,这就是消息堆积,也叫消息积压。
完成Group创建后,点击消息一键收发体验,选择复杂场景中的”消息堆积场景“,如下图:
运行后,可以从运行结果看到,实际发送了530条消息,可仅接收消费了10条,消息堆积严重,如下图:
消息失败重投场景
消息失败重投其实可以理解为是一种故障恢复的机制,也就是说遇到消息失败时可以根据事先设定的重试次数进行重试直至故障恢复,重试次数未恢复则直接丢弃该消息。
体验消息失败重投需要在复杂场景中选择”消息失败重投场景“,如下图:
运行后,我们可以在消费轨迹中看到消息失败次数以及重试次数,如下图:
六大场景体验下来,非常流畅,传统方式需要命令交互方式来实现消息的发送、查看、订阅、排障等,RocketMQ只需要简单的点点鼠标即可实现消息从发送到消费及后期监控的全套功能,用户无需去弄明白实现的方式,只需要看到实现的效果即可,真正做到了开箱即用。
RocketMQ AI助手体验
用户可以直接通过点击开始对话来体验AI助手,RocketMQ AI助手是基于当下正热的AIGC进行研发的,用户可以通过与小助手对话的方式快速了解RocketMQ。当前小助手还存在初期体验测试阶段,训练营群提供了如下20个代表性的问题进行针对训练,大家不妨都来试试,共同提升小助手的解答能力,从而更好地为用户服务。
1、RocketMQ支持哪些开发语言和SDK?
2、订阅关系不一致是什么原因?
3、发送消息报错怎么处理?
4、消息没消费一直堆积怎么排查?
5、RocketMQ报Topic找不到错误怎么处理?
6、RocketMQ支持广播消费吗?
7、RocketMQ怎么发送定时消息?
8、提供一下收发消息示例?
9、RocketMQ 消费失败怎么处理?
10、RocketMQ 消息是否可靠,不会丢?
11、RocketMQ 怎么部署?
12、RocketMQ和Kafka有什么区别?
13、RocketMQ 怎么创建Topic?
14、RocketMQ 怎么删除消息?
15、RocketMQ 怎么发送事务消息?
16、RocketMQ 可以保证消息顺序吗?
17、RocketMQ 服务端报错如何解决?
18、RocketMQ 怎么自动创建Topic?
19、RocketMQ 支持最大消息有多大?
20、RocketMQ 消息可以保存多久?
体验完这20个问题的对话后,想基此提点建议,如下:
1、相关类知识重复度很高,比如下图,虽然内容有微小的差异,但主体内容是一致的。可能出现的原因碍于当下文档的缺乏,建议后期优化调整。
2、在解答问题类的回答中,当前版本的助手均会在相关中出现介绍类的文档,诸如消息队列RocketMQ、为什么选择RocketMQ等,建议不要出现介绍类的文档,这类文档可出现产品对比、功能优势等问答中,因为用户需要的是解疑答惑类的文案,出现介绍类不但不会去点击,反而会影响整体的体验。
3、在示例回答中,格式不统一,有时候是文本,如下图,有时候又是代码段形式,建议统一为代码段形式。
4、相关类的链接有时会出现如下图所示的明文,这应该是调试导致的,建议修复。
RocketMQ作为一款基于Apache RocketMQ构建的分布式消息队列中间件,对于新手用户来说,建议从以下几个方面进行学习掌握(点击链接均可直达哟)。
1、参加官方开办的消息队列RocketMQ 5.0 云原生架构升级训练营、0基础掌握RocketMQ5.0训练营学习,对产品有个初步的了解;
2、认真完成训练营中涉及的在线实验一,在线实验二,在线实验三实现从理论到实践的转变;
3、认真学习官网的在线帮助文档,先对产品有个整体的了解;
4、勤逛消息队列的开发者社区,了解真实的业务应用场景和有关答疑解惑;
5、勤阅读在线电子书,可以实现从入门到实战;