我正在阅读《RabbitMQ in Action》一书,仍在第 2 章中,但作者说的一件事让我感到困惑。您设置一个交换并发送一条消息,两个订阅者正在监听队列。当第一条消息到达时,第一个订阅者会收到它,并且一旦确认该消息就会被删除。当下一个消息到达时,它会以循环方式发送到下一个侦听器。我想,如果我发送一条消息,我希望所有订阅者都能收到它。我的理解有错吗?
这很简单。如果您希望所有订阅者都获取消息的副本,请使用通配符绑定创建多个队列。
假设您有一个主题交换器,并且您使用像 fred.interesting 或 fred.boring 这样的路由键发布所有消息,那么如果每个订阅者都声明一个绑定键为 fred.* 的队列,那么每个队列将获得一份每条消息。唯一的问题是如何命名队列,尽管如果您愿意,RabbitMQ 可以为您生成唯一的名称。
如果我这样做,我将有一个主管进程来启动并监视消息使用者进程。主管将为每个消费者进程分配一个队列名称,例如 fred0001、fred0002,并跟踪正在使用的名称。使用这样的指定名称可以更轻松地使用管理工具或编写管理和监控脚本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)