mirror of
https://github.com/doocs/advanced-java.git
synced 2025-02-06 07:20:10 +08:00
docs: update how-to-ensure-the-order-of-messages.md
This commit is contained in:
parent
5d66febdde
commit
6b97937dbd
@ -28,10 +28,14 @@
|
||||
|
||||
#### RabbitMQ
|
||||
|
||||
拆分多个 queue,每个 queue 一个 consumer,就是多一些 queue 而已,确实是麻烦点;或者就一个 queue 但是对应一个 consumer,然后这个 consumer 内部用内存队列做排队,然后分发给底层不同的 worker 来处理。
|
||||
拆分多个 queue,每个 queue 一个 consumer,就是多一些 queue 而已,确实是麻烦点,这样也会造成吞吐量下降,可以在消费者内部采用多线程的方式取消费。
|
||||
|
||||
![rabbitmq-order-02](./images/rabbitmq-order-02.png)
|
||||
|
||||
或者就一个 queue 但是对应一个 consumer,然后这个 consumer 内部用内存队列做排队,然后分发给底层不同的 worker 来处理。
|
||||
|
||||
注意,这里消费者不直接消费消息,而是将消息根据关键值(比如:订单 id)进行哈希,哈希值相同的消息保存到相同的内存队列里。也就是说,需要保证顺序的消息存到了相同的内存队列,然后由一个唯一的 worker 去处理。
|
||||
|
||||
#### Kafka
|
||||
|
||||
- 一个 topic,一个 partition,一个 consumer,内部单线程消费,单线程吞吐量太低,一般不会用这个。
|
||||
|
Loading…
Reference in New Issue
Block a user