顺序消息分析|学习笔记

简介: 快速学习顺序消息分析

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

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


顺序消息分析


内容介绍

一、含义

二、Broker

三、发送者

四、消费者

五、总结

 

一、含义

顺序消息,是消费者消费消息的顺序要与生产者发送顺序是一致的,当前 MQ 是一

个消息队列,本身数据结构是先进先出。

 

二、Broker

消息发送方会依次进入对列,消息队列会保证先进先出。

将信息发送 Broker。Broker 内部有四个队列。

 

三、发送者

左边是消息的发送者,右边是消息的消费者发送的消息是与订单有关的消息。假设

与张三有创建、付款、推送、完成四个方面有关系,必须按着顺序发送。

Broker 中有多个队列是为了提高消息发送与消息消费的顺序。由于有多个队列,那么这几个消息会被放到多个队列,发送到 Broker 中,会采取轮循的方式,将消息一次放到多个队列中。

 

四、消费者

消费者采用多线程方式去同时消费多个消息。但是采用多线程方式去同时消费多个

消息很难保证发送的顺序,这时要保证消息顺序,会分成两个方面。

(1)全局消息顺序:当前发送给 Broker 所有队列的消息,要保证所有 Broker 中的所有队列的消息的消费,要遵循发送顺序.全局是没有必要的

(2)局部消息顺序:只保证张三消息发送的顺序就行,如果有李四的消息,只需保证每个人发送的顺序就可以了。保证局部消息顺序,其实可以把张三的消息放到一个队列里,李四放到队列里。对于一个单位的消费采用单线程,对于多个单位可

以采用多线程。

image.png


五、总结

对于消息顺序来说,只要保证 Broker 某一队列的顺序即可。局部消息的顺序一般来讲可以在发送消息时通过订单的业务标识,比如订单 id 去选择当前的某一队列,只要是这个订单后续消息,都给一个队列中去,就通过订单 id 去选择当前的队列。保证发送者和消费者的顺序。

目录
打赏
0
0
0
0
55
分享
相关文章
6年高级开发就因这道题少了5K,Kafka如何避免消息重复消费?
一个6年工作经验的小伙伴,被问到这样一个问题,说Kafka是如何避免消息重复消费的?面试完之后,这位小伙伴来找到我,希望我能给一个思路。今天,我给大家分享一下我的思路。
195 1
消息的重复消费问题如何解决
在使用RabbitMQ进行消息收发的时候, 如果发送失败或者消费失败会自动进行重试, 那么就有可能会导致消息的重复消费 , 具体的解决方案其实非常简单, 为每条消息设置一个唯一的标识id , 将已经消费的消息记录保存起来 , 后期再进行消费的时候判断是否已经消费过即可 , 如果已经消费过则不消费 , 如果没有消费过则正常消费
大数据-61 Kafka 高级特性 消息消费02-主题与分区 自定义反序列化 拦截器 位移提交 位移管理 重平衡
大数据-61 Kafka 高级特性 消息消费02-主题与分区 自定义反序列化 拦截器 位移提交 位移管理 重平衡
56 1
浅析什么是顺序消息?
在日常开发中,或多或少的都遇到过顺序消息的使用场景,那么为什么要使用顺序消息呢?如果不使用顺序消息会有什么问题吗?市面上的消息中间件又是如何实现的呢?
241 0
浅析什么是顺序消息?
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等