【发布时间】:2017-04-10 08:51:48
【问题描述】:
我是 AMQP 的新手,正在尝试为 RabbitMQ 系统制定通知架构。
我想要一个主题交换(比方说是NotificationsExchange),特别是因为我想要灵活地使用主题交换附带的路由键和队列,以及更多选项以供将来扩展该主题。不过我可能错了,因为...
我还想让每个通知被两个或更多消费者消费。作为基线,我希望发布的每个通知都在数据库中结束。此外,我希望每个通知都可以被客户端应用程序使用(例如,Web 应用程序可以使用并进一步推送套接字,以便在没有数据库轮询的情况下立即通知用户)。
这听起来确实像是一个扇出交换的情况,但我不想这样做,因为我需要更多的队列来处理各种通知(我认为 - 对 AMQP 来说还是新手,并试图解决我的问题周围)。
是否可以让两个消费者(一致地)从同一个队列中获得通知?
例如:
- 通过 NotificationExchange 推送
Notif.NotifGroup.User.ThisUser - 让
dbListener绑定到Notif.# - 让
mvcClientListener也绑定到Notif.#(并进一步判断用户是否在线并通过socket向下游推送)
我不确定我是否走在正确的轨道上。我正在阅读“同一队列的多个消费者以循环方式进行负载平衡”,坦率地说,我不知道这是什么意思。
是否有可能有一个主题交换,其中两个消费者可以一致地从同一个队列中读取相同的消息(例如,相同的路由键),或者我必须为此使用扇出交换?
谢谢。
【问题讨论】:
标签: rabbitmq