RabbitMQ与TCP负载均衡的消费者

时间:2015-05-26 16:25:51

标签: rabbitmq celery load-balancing scaling

需要一些关于如何使用RabbitMQ获得消费者负载平衡的技巧。

方案如下 - 我有2个申请,让我们说App1& App2(实际上是单个应用程序的两个阶段),在不同的主机上运行(可能在同一个AZ中,也可能不在同一个AZ中),而RabbitMQ用于将半成品任务从App1移交给App2。

App1和App2有多个实例。给定流量,App1是TCP负载平衡的。我更喜欢App2进行TCP负载均衡 - 以便在需要时提出新的App2实例等等。

现在,根据我对RabbitMQ的理解,负载均衡器显然不能用作消费者。所以我认为设置可能如下 -

传入请求 - > LB - > App1 * N1 - > RabbitMQ - >工人 - > LB - > App2 * N2

('工人'只会通过LB将任务移交给App2实例)

PS - 我将使用Celery。 AutoScale选项是可能的,但我不想编写自己的动态缩放算法。

0 个答案:

没有答案