寻找RocketMQ首席评测官【阿里云产品测评】

  • 前言
  • 版权
  • 推荐
  • 寻找RocketMQ首席评测官
  • 开始
  • 任务一:免费领取资源
  • 任务二:了解评测活动
  • 体验普通消息场景
  • 体验顺序消息场景
  • 体验定时消息场景
  • 体验事务消息场景
  • 体验消息堆积场景
  • 体验消息重投场景
  • 体验总结
  • 未完待续
  • 最后


前言

2023-8-28 19:46:38


推荐

RocketMQ评测

寻找RocketMQ首席评测官

活动主页
https://developer.aliyun.com/mission/review/rocketmqtest

操作主页
https://developer.aliyun.com/topic/rocketmq

开始

二、试用教程:

STEP01:创建VPC:点击查看操作文档

STEP02:领取资源:点击查看视频教程

三、场景介绍:

1、普通消息场景:在多种消息类型中,普通消息是最简单也最为重要。普通消息是 RocketMQ 的基本消息类型,提供高吞吐、扩展、低延迟、异步的通信能力。

2、定时消息场景:定时消息是生产者将一条消息发送到消息队列后并不期望这条消息马上会被消费者消费到,而是期望到了指定的时间,消费者才可以消费到。

3、事务消息场景:在分布式系统调用场景中存在这样一个通用问题,即在执行一个核心业务逻辑的同时,还需要调用多个下游做业务处理,而且要求多个下游业务和当前核心业务必须同时成功或者同时失败,进而避免部分成功和失败的不一致情况出现。简单来说,消息队列中的“事务”,主要解决的是消息生产者和消费者的数据一致性问题。

4、顺序消息场景:对于一个指定的 Topic,同一 MessageGroup 的消息按照严格的先进先出(FIFO)原则进行发布和消费,即先发布的消息先消费,后发布的消息后消费,服务端严格按照发送顺序进行存储、消费。

5、消息堆积场景:消息堆积是指由于消费者的消费能力有限,未能在短时间内将所有消息正确消费掉,此时在服务端保存着未被消费的消息的状态。在 RocketMQ 中,消息堆积可以通过 Metrics 指标来衡量,这些指标可直接反映队列中消息的处理速率和堆积情况。

6、消息失败重投场景:当消费者消费消息失败时, RocketMQ 会按照最大重试次数重新投递该消息进行故障恢复。在集群模式下,消费的业务逻辑代码会返回消费失败状态,或者抛出异常,如果一条消息消费失败,则会按照设置的最大重试次数重试,之后该消息会被丢弃。

任务一:免费领取资源

完成这个

寻找RocketMQ首席评测官【阿里云产品测评】_先进先出

寻找RocketMQ首席评测官 :创建专有网络VPC操作指引

https://vpc.console.aliyun.com/vpc/cn-hangzhou/vpcs

寻找RocketMQ首席评测官【阿里云产品测评】_rocketmq_02

寻找RocketMQ首席评测官【阿里云产品测评】_rocketmq_03


创建完成之后

寻找RocketMQ首席评测官【阿里云产品测评】_业务逻辑_04

寻找RocketMQ首席评测官【阿里云产品测评】_阿里云_05


这两个就有了,我是把它涂掉了

点击立即使用

寻找RocketMQ首席评测官【阿里云产品测评】_rocketmq_06


寻找RocketMQ首席评测官【阿里云产品测评】_业务逻辑_07


这样就完成了

任务二:了解评测活动

完成这个

新版在这

https://ons.console.aliyun.com/overview

寻找RocketMQ首席评测官【阿里云产品测评】_rocketmq_08

点击实例列表

寻找RocketMQ首席评测官【阿里云产品测评】_业务逻辑_09

寻找RocketMQ首席评测官【阿里云产品测评】_rocketmq_10

点击Topic,这个0

寻找RocketMQ首席评测官【阿里云产品测评】_先进先出_11


topic管理

寻找RocketMQ首席评测官【阿里云产品测评】_先进先出_12

group管理

寻找RocketMQ首席评测官【阿里云产品测评】_业务逻辑_13

回到topic管理

点击消息一键式体验

寻找RocketMQ首席评测官【阿里云产品测评】_业务逻辑_14

寻找RocketMQ首席评测官【阿里云产品测评】_rocketmq_15

体验普通消息场景

普通消息,最基本的发布订阅模式,大部分业务都是使用普通消息进行异步解耦的

消费组订阅topic

寻找RocketMQ首席评测官【阿里云产品测评】_消息队列_16


寻找RocketMQ首席评测官【阿里云产品测评】_消息队列_17

开通函数计算,点击发送普通消息

寻找RocketMQ首席评测官【阿里云产品测评】_业务逻辑_18

寻找RocketMQ首席评测官【阿里云产品测评】_消息队列_19

这里有个什么创建一个角色

寻找RocketMQ首席评测官【阿里云产品测评】_rocketmq_20


消息轨迹

寻找RocketMQ首席评测官【阿里云产品测评】_先进先出_21

可以使用仪表盘,来进行问题排查和消息治理等场景

体验顺序消息场景

顺序消息,可以做到在一个消息组的内部,按照先进先出的方式处理,
用于对消息处理顺序有极高要求的场景,比如异构数据重放同步

创建topic

寻找RocketMQ首席评测官【阿里云产品测评】_rocketmq_22

创建group

寻找RocketMQ首席评测官【阿里云产品测评】_阿里云_23

一键体验

首先,需要启动消费者实例,订阅这个topic

寻找RocketMQ首席评测官【阿里云产品测评】_业务逻辑_24

寻找RocketMQ首席评测官【阿里云产品测评】_阿里云_25

启动生产者发送消息

与普通消息不同的是,顺序消息需要额外指定消息组,比如用订单ID作为消息组,
同一笔订单的消息顺序消费
RocketMQ会对同一个消息组的消息按照先进先出的方式处理

寻找RocketMQ首席评测官【阿里云产品测评】_阿里云_26


寻找RocketMQ首席评测官【阿里云产品测评】_业务逻辑_27

可以看到消息已经发送成功,同一个消息组的消息会进入到同一个消费者实例中进行串行消费

通过设计合理的消息组才能实现在保序的情况下依然做到高并发、高吞吐量

最后进入仪表盘,看我们的统计数据

体验定时消息场景

定时消息,可以实现在指定时刻触发消息的消费流程,可用于定时事件驱动的架构

如订单创建30分钟未付款取消订单的场景

创建topic

寻找RocketMQ首席评测官【阿里云产品测评】_先进先出_28


创建group

寻找RocketMQ首席评测官【阿里云产品测评】_消息队列_29

一键收发体验

首先还是要启动一个消费者实例订阅topic

寻找RocketMQ首席评测官【阿里云产品测评】_先进先出_30

再启动一个生成者,往这个topic中发送一条消息

和普通消息不同的是,定时消息需要指定一个定时时间

寻找RocketMQ首席评测官【阿里云产品测评】_消息队列_31

因为是延时消息所以刚开始时是不可见的

寻找RocketMQ首席评测官【阿里云产品测评】_消息队列_32


需要等待20s

寻找RocketMQ首席评测官【阿里云产品测评】_消息队列_33

消费者也消费成功了

最后,进入仪表盘看统计数据

体验事务消息场景

事务消息,可以使生产者事务和消费者事务达到最终一致性

一般用于交易、支付等对分布式事务有较高要求的场景

创建topic

寻找RocketMQ首席评测官【阿里云产品测评】_阿里云_34

创建group

寻找RocketMQ首席评测官【阿里云产品测评】_rocketmq_35

消息收发体验

使用刚才创建的consumer group启动一个消费者实例,订阅这个topic

寻找RocketMQ首席评测官【阿里云产品测评】_业务逻辑_36

启动一个生成者,发送消息

寻找RocketMQ首席评测官【阿里云产品测评】_rocketmq_37

和普通消息不同的是
事务消息的生成者,还需要实现一个本地事务状态的回查器
用于事务协调器RocketMQBroker进行异常补偿,具体代码可以详见demo

只有生产者本地事务和消息同时发送成功后,消息才对消费者可见

执行消费者事务,以此来保证生产者事务和消费者事务到达最终一致性

最后,进入仪表盘看统计数据

寻找RocketMQ首席评测官【阿里云产品测评】_消息队列_38

体验消息堆积场景

消息堆积,属于消息的异常场景

当大量的消息因为某个同类的原因,消费慢或者消费失败,消费成功的速度持续赶不上生产速度

就会出现消息堆积

这个问题是需要尽快解决的,否则就会出现故障

创建topic

消息堆积和类型无关,这里选择使用普通消息

寻找RocketMQ首席评测官【阿里云产品测评】_阿里云_39

创建group

寻找RocketMQ首席评测官【阿里云产品测评】_消息队列_40


资源创建完毕,进行收发体验点击消费堆积的模板

寻找RocketMQ首席评测官【阿里云产品测评】_业务逻辑_41


这里会模拟生成者发送大量消息,消费者一直消费超时

寻找RocketMQ首席评测官【阿里云产品测评】_阿里云_42

我们可以看到生产成功的消息量逐渐增大,速度远超过消费成功的消息量

这个时候堆积已经产生

排查堆积问题,我们需要全局的视角,仪表盘能够提供很多帮助

通过仪表盘,可以从生产者的视角,看消息的生产速度

确认是否是因为突发的消息流量,容量的不够导致的堆积

寻找RocketMQ首席评测官【阿里云产品测评】_rocketmq_43

我们还能从消费者视角看到消息堆积曲线,来评估已经产生的业务影响,也能看到消费耗时和成功率,定位是否是慢消费者导致的堆积,还是因为消费业务错误导致的堆积,最后再结合实际的代码逻辑、运行状态,最终定位根因、解决堆积问题

寻找RocketMQ首席评测官【阿里云产品测评】_消息队列_44

体验消息重投场景

消息冲突,属于消息的异常流程

消息消费失败后,Broker会重试直到消费成功,或者消费的次数超过重试的阈值,以此来实现可靠的消息服务、异步链路的最终一致性

首先,创建一个topic

所有的消息类型都会重投,所以我们选择以普通消息为例

寻找RocketMQ首席评测官【阿里云产品测评】_阿里云_45


有了topic之后,我们需要创建一个consumer group

寻找RocketMQ首席评测官【阿里云产品测评】_rocketmq_46

资源创建完毕,进行收发体验

点击消息重投的模板

寻找RocketMQ首席评测官【阿里云产品测评】_消息队列_47

这里会模拟生成者发送一条消息,消费者返回消费失败

我们可以看到第一次消费失败后,Broker会在一定时间后进行重投,重投的间隔也会随着重投次数逐渐增大,而变得越来越长

寻找RocketMQ首席评测官【阿里云产品测评】_rocketmq_48

点击消息轨迹,我们可以看到详细的重投时间和次数

寻找RocketMQ首席评测官【阿里云产品测评】_消息队列_49

最后进入仪表盘看统计数据

体验总结

一键式体验确实可以

体验效果挺不错的

对技术小白很友好

1、新手体验类:

1)您初次使用该场景时的感受如何,输出产品使用过程;

初次体验感觉非常的可以,使用过程可以看上面的链接

2)通过对该场景的体验,您会给其他刚接触RocketMQ产品用户哪些学习建议。

给刚接触的同学学习建议,可以先了解一下RocketMQ,用过更好

我也是原来使用过RocketMQ,事务消息

2、进阶体验类,包括但不限于(至少选择其中两点):

1)您在该场景体验中有呈现实现源码,通过对源码的了解有哪些感受?

事务消息

2)您会倾向于在什么场景下使用RocketMQ的该功能,对应会给您或公司带来哪些收益或价值?

我认为RocketMQ与其他消息队列的区别就在于可以发送事务消息

3)您认为该场景的优势是什么? 以及有待改进的方面是什么?

事务消息,可以保证生产者和消费者的最终一致性

我在一个秒杀项目中,用RocketMQ来保证redis的库存和mysql的库存的一致性

未完待续

还有一些介绍以及代码没有补充

最后

2023-8-29 10:24:53

我们都有光明的未来

祝大家考研上岸
祝大家工作顺利
祝大家得偿所愿
祝大家如愿以偿
点赞收藏关注哦