Skip to content

Latest commit

 

History

History
17 lines (10 loc) · 848 Bytes

如何保证消息的顺序性.md

File metadata and controls

17 lines (10 loc) · 848 Bytes

[TOC]

如何保证消息的顺序性

RabbitMQ

  • 拆分多个queue,每个queue一个consumer,就是多一些queue而已。
  • 或者是一个queue但是对应一个consumer,然后consumer内部用内存队列做排队,然后分发给底层不同的worker来处理。

image-20210930092954894

Kafka

  • 一个 topic,一个 partition,一个 consumer,内部单线程消费,单线程吞吐量太低,一般不会用这个
  • 写 N 个内存 queue,具有相同 key 的数据都到同一个内存 queue;然后对于 N 个线程,每个线程分别消费一个内存 queue 即可,这样就能保证顺序性

image-20210930093238703