We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent baacc3d commit d6c5263Copy full SHA for d6c5263
markdown-file/RabbitMQ-Install-And-Settings.md
@@ -137,10 +137,14 @@ yum install rabbitmq-server -y
137
138
- 一般场景不需要消息顺序,要去做一般也开销很大,需要执行考虑。
139
- 在能保证消息顺序的情况下,可以用来做数据同步
140
+- 解决:
141
+ - 消费者只有单个应用,并且内容不要使用异步或者多线程。在这种场景下绑定 queue,**基于消息队列本质是队列,消息是 FIFO(先进先出)的**,这样消息就能按顺序。但是缺点很明显:吞吐太差,效率太低,适合低效率的业务。
142
+ - 基于上面方案并且对队列进行分片。假设我们原来 repay.queue下面有 10 个消费者线程,那么我们可以创建10个队列,每个队列下面只允许有一个消费者。一个比较简单的方式是,队列命名为 repay.queue-0,repay.queue-2…repay.queue-9,然后生产者推送信息的时候,基于用户的ID(Long类型)mod 10 取模 0…9(取余),再选择发送到相应的队列即可,这样就等保证同一个用户的顺序。
143
144
145
+## 资料
146
-
147
+- <http://throwable.coding.me/2018/03/25/out-of-order-consume/>
148
149
150
0 commit comments