Rabbitmq 兔抗饥饿模式

Rabbitmq 兔抗饥饿模式,rabbitmq,rabbitmq-management,Rabbitmq,Rabbitmq Management,要解决的问题:防止客户饿死其他客户 我计划让每个客户都有自己的队列,然后让一个消费者从所有这些队列中消费。就我而言,可能有数百名顾客,但排队很便宜。拥有一个合理的下限,默认代理行为()应该会产生令人满意的结果 这种策略的问题在于新客户出现时。我可以懒洋洋地创建队列并将其绑定到发布服务器中的exchangemsg.in。但是如何让消费者从这个新的customer.xxx队列中消费呢 这几乎是相同的,但不是真的,因为我需要每个客户端都有一个缓冲区。这一问题也无法解决,因为这将破坏每个客户的邮件订单

要解决的问题:防止客户饿死其他客户

我计划让每个客户都有自己的队列,然后让一个消费者从所有这些队列中消费。就我而言,可能有数百名顾客,但排队很便宜。拥有一个合理的下限,默认代理行为()应该会产生令人满意的结果

这种策略的问题在于新客户出现时。我可以懒洋洋地创建队列并将其绑定到发布服务器中的exchange
msg.in
。但是如何让消费者从这个新的
customer.xxx
队列中消费呢

这几乎是相同的,但不是真的,因为我需要每个客户端都有一个缓冲区。这一问题也无法解决,因为这将破坏每个客户的邮件订单。有没有一种基于模式的消费方式?就像绑定一样,例如,
customer.*

轮询是一个选项,但将延迟处理新客户的第一条消息,直到消费者进行了轮询。为消费者可以采取行动的元数据(如
new customer.003
)提供单独的通道将减少延迟(并避免轮询API),但会使发布者更加复杂


我觉得有一个很好的解决方案,我只是还没找到。感谢您的反馈

有没有理由让所有这些正在使用的独立队列,而不仅仅是所有客户端发布到的队列?我已经编辑了这个问题,将客户端重命名为客户,以澄清这一点。谢谢你澄清这句话。。。当新客户出现时。我可以懒洋洋地创建队列并绑定它…。您能否同时通知使用者已创建了一个新队列?队列创建和绑定是幂等的,因此发布者只需每次创建队列即可确保队列存在。就性能而言,这不是最优的,但这正是我的意思。更好的解决方案可能是使用强制标志集发布,如果没有客户队列绑定,则创建它,并在我详细介绍的发布/订阅元通道上发送通知。近3年后,您找到了解决此问题的好方法吗?