顺序消息分析|学习笔记

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

开发者学堂课程【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 去选择当前的队列。保证发送者和消费者的顺序。

相关文章
|
8月前
|
消息中间件 NoSQL 关系型数据库
6年高级开发就因这道题少了5K,Kafka如何避免消息重复消费?
一个6年工作经验的小伙伴,被问到这样一个问题,说Kafka是如何避免消息重复消费的?面试完之后,这位小伙伴来找到我,希望我能给一个思路。今天,我给大家分享一下我的思路。
104 1
|
6天前
|
消息中间件 存储 Kafka
几种 MQ 顺序消息的实现方式
几种 MQ 顺序消息的实现方式
|
消息中间件 存储 网络协议
大厂都是如何处理重复消息的?
消息消费失败,很多框架会自动执行重试,而重试就产生了重复消息。 MQTT协议给出三种传递消息时能够提供的
229 0
|
消息中间件 存储 RocketMQ
【视频】顺序消息| 学习笔记
快速学习【视频】顺序消息
63 0
【视频】顺序消息| 学习笔记
|
存储 消息中间件 Linux
多类型业务消息专题-顺序消息 | 学习笔记
快速学习多类型业务消息专题-顺序消息
63 0
多类型业务消息专题-顺序消息 | 学习笔记
|
消息中间件 Java 开发者
消息类型-顺序消息|学习笔记
快速学习消息类型-顺序消息
90 0
消息类型-顺序消息|学习笔记
|
消息中间件 RocketMQ 开发者
顺序消息原理|学习笔记
快速学习顺序消息原理
53 0
顺序消息原理|学习笔记
|
消息中间件 Java
浅析什么是顺序消息?
在日常开发中,或多或少的都遇到过顺序消息的使用场景,那么为什么要使用顺序消息呢?如果不使用顺序消息会有什么问题吗?市面上的消息中间件又是如何实现的呢?
181 0
浅析什么是顺序消息?
|
消息中间件 RocketMQ 开发者
顺序消息发送者|学习笔记
快速学习顺序消息发送者
68 0
|
消息中间件 存储 RocketMQ
实时更新消息消费队列与索引文件流程说明|学习笔记
快速学习实时更新消息消费队列与索引文件流程说明
104 0
实时更新消息消费队列与索引文件流程说明|学习笔记