我对RabbitMQ还不太熟悉,我们仍处于调查阶段,以确定它是否适合我们的使用情况。我们已经得出结论,我们期望的拓扑结构将使我们部署一些基于主题的交换机,然后从那里过滤到特定的队列。例如,假设我们有一个用户和上传交换机,其中用户队列可能接收主题为“new-registration”或“friend-request”的消息,而上传交换机可能接收诸如“video-upload”或“picture-upload”的消息。
创建队列,将它们路由到适当的队列,然后构建监听程序来处理各种队列的消息非常简单明了。
但是我不清楚是否可以在主题交换机上执行广播?也就是说,我有命名队列绑定到我的主题交换机,但我想能够只需将大量实例的监听器投放到这些队列中,以避免单点故障。但据我所知,RabbitMQ会按照轮询方式处理这些监听器-例如,每N个消息总是发送到同样的第N个监听器,而不是将消息分派给第一个可用的消费者。这通常对我们来说是可以接受的,但考虑到我们预计的负载,我们希望避免消费者群中出现热点的可能性。
因此,是否有一些方法,无论是在队列或交换机配置中还是在消费者代码中,我们可以将监听器指向主题队列,但让监听器以广播方式处理?
创建队列,将它们路由到适当的队列,然后构建监听程序来处理各种队列的消息非常简单明了。
但是我不清楚是否可以在主题交换机上执行广播?也就是说,我有命名队列绑定到我的主题交换机,但我想能够只需将大量实例的监听器投放到这些队列中,以避免单点故障。但据我所知,RabbitMQ会按照轮询方式处理这些监听器-例如,每N个消息总是发送到同样的第N个监听器,而不是将消息分派给第一个可用的消费者。这通常对我们来说是可以接受的,但考虑到我们预计的负载,我们希望避免消费者群中出现热点的可能性。
因此,是否有一些方法,无论是在队列或交换机配置中还是在消费者代码中,我们可以将监听器指向主题队列,但让监听器以广播方式处理?