如何在 RabbitMQ 队列中拥有超过 50 000 条消息

How to have more than 50 000 messages in a RabbitMQ Queue

我们目前在 Azure 中使用服务总线,由于各种原因,我们正在切换到 RabbitMQ。 在负载很重的情况下,当后端的特定任务出现问题时,我们的一个队列最多可以有 100 万条消息等待处理。

RabbitMQ 每个队列最多可以有 50 000 条消息。 问题是我们如何设计 rabbitMQ 基础设施以在消息暂时累积时继续工作?

注意:我们希望在 kubernetes 集群内的 docker 映像中托管我们的 RabbitMQ 服务器。 我们想象一个交换,它将在后面的节点中的队列之间负载平衡消息。 但是我们不清楚的是,如果我们检测到队列已满,如何按需动态添加新队列。

RabbitMQ can have a maximum of 50 000 messages per queue.

没有这种限制。 RabbitMQ 可以使用具有惰性的仲裁或经典队列来处理更多消息。 stream queues RabbitMQ 每秒可以处理数百万条消息。

we imagine an exchange that would load balance messages between queues in nodes behind.

您可以使用不同的绑定来做到这一点。

kubernetes cluster.

我建议使用 k8s Operator

But what is unclear to us is how to dynamically add new queues on demand if we detect that queues are getting full.

RabbitMQ中没有FULL的概念。您可以使用 max-length or TTL.

设置限制