【发布时间】:2018-11-04 23:46:46
【问题描述】:
我有一个关于多消费者并发的问题。 我想将来自 Web 请求的作品发送到rabbitmq 到分布式队列。 我只想确定多个队列(FIFO)中的工作顺序。 因为这个请求来自不同的用户,所以必须订购用户请求/作品。
我发现这个特性在 Azure ServiceBus 和 ActiveMQ 消息分组上有不同的名字。
有没有办法在漂亮的 RabbitMQ 中做到这一点?
我想保证客户的请求必须相互订购。 每个客户可能有多个请求,但必须按顺序处理针对该客户的请求。 我希望通过在不同节点上使用多个消费者来快速处理传入的请求。 例如,不同的客户 1 到 1000 发送超过 100 万个请求。 如果我只将这个巨大的请求放在一个队列中,则需要花费大量时间。所以我想在 n (5) 节点之间共享这个进程负载。对于客户 X 的请求必须按照相同的顺序进行处理
【问题讨论】:
-
你的意思是有序的,还是说每个用户的工作项必须送到同一个消费者,即使队列有多个消费者?还是两者兼而有之?
-
所以每个客户可能有多个请求,但是必须按顺序处理该客户的这些请求,但可能会出现乱序(甚至与其他客户的请求交错?你在谈论 ActiveMQ 调用“消息分组”?(如果是这样,请编辑您的问题以明确说明:cmets 可以消失。)