diff --git a/notes/消息队列.md b/notes/消息队列.md index 9fb85cc0..5e5779d0 100644 --- a/notes/消息队列.md +++ b/notes/消息队列.md @@ -92,7 +92,7 @@ Kafka、RocketMQ 等通过消费者组把两种模型结合起来:一条消息 ## 四、顺序性 -消息队列通常只保证单个队列(Kafka 中的分区)内的消息有序,多个队列之间没有顺序保证。 +消息队列通常只保证单个队列(Kafka 中的分区)内的消息有序,多个队列之间没有顺序保证。并且在点对点模式下,一个消费者处理失败的消息会被重新投递给另一个消费者,顺序也会被打乱。 要保证同一业务的消息有序,需要让发送端把这些消息按业务 Key(例如订单号)路由到同一个队列,并且接收端对同一个队列只用一个线程顺序消费。 @@ -105,4 +105,5 @@ Kafka、RocketMQ 等通过消费者组把两种模型结合起来:一条消息 ## 参考资料 - [Observer vs Pub-Sub](http://developers-club.com/posts/270339/) +- [Designing Data-Intensive Applications 中文版](https://github.com/vonng/ddia) - [消息队列中点对点与发布订阅区别](https://blog.csdn.net/lizhitao/article/details/47723105)