如何在RabbitMQ中对消费者进行分组?

时间:2016-04-06 15:50:45

标签: rabbitmq producer-consumer rabbitmq-exchange

我们正在编写邮件同步系统,我们使用RabbitMQ。每个生产者推送邮件ID,然后消费者获取ID并将邮件插入db。在我们有100个消费者(例如)并且生产者将生成ID太快的情况下,每个消费者将获得id并将使用api来获取邮件,因此将关于对api的并发请求的限制将是例外。

我们限制每个生产者的消费者(例如,如果最多3个消费者将获得一个生产者的ID,那么接下来的3个将从其他生产者那里获得,依此类推)?

1 个答案:

答案 0 :(得分:0)

  

我们限制每个生产者的消费者(例如,如果最大3   消费者将获得一个生产者的ID,然后接下来的3个生产者   从其他人,等等)?

您可以使用简单路由来完成此操作。

ProducerA 发送路由密钥 routeA consumer1 consumer2 consumer3 订阅与路由密钥交换 routeA ProducerB 发送路由密钥 routeB consumer4 consumer5 consumer6 订阅的邮件与路由密钥 routeB 交换。 .. 等等
您也可以使用topic exchange

但是,在我看来,这可能不是限制API的并发请求的例外问题的解决方案。你没有指定哪个API,所以我可以假设这个数字是可配置的,你可以增加它,或者只是不允许并发访问(这很难想象,因为,你知道,不是70年代),其中并发症的整个想法崩溃了......