oslo.messaging: 通知监听器池¶
https://blueprints.launchpad.net/oslo.messaging/+spec/notification-listener-pools
想法是你可以拥有多个组/池的监听器来消费通知,并且每个组/池只接收每个通知的一份副本。
问题描述¶
目前,如果两个应用程序使用 oslo.messaging 通知监听器并希望订阅相同的主题,它们会互相抢夺消息。
当前的解决方法是配置通知者部分在不同的主题上发布消息两次。这让很多人感到困惑,而且没有文档说明。
提议的变更¶
因此,此 BP 的一部分有点硬编码在 oslo.messaging 中,并产生不良副作用。该提案将修复这个问题。
我们需要为 messaging.get_notification_listener() API 添加一个 pool 参数来支持这一点。
在所有 AMQP 驱动程序中,这是通过使用池名称作为从主题消费的队列名称来实现的。为了保持向后兼容性,默认情况下,主题名称将继续用作池/队列名称。
备选方案¶
记录了该解决方法。
Impact on Existing APIs¶
oslo.messaging.get_notification_listener 将获得一个新的参数 ‘pool’ 来配置池名称。
安全影响¶
无。
性能影响¶
无。
Configuration Impact¶
无。
开发人员影响¶
无。
Testing Impact¶
无。
实现¶
负责人¶
- 主要负责人
sileht
- 其他贡献者
无
里程碑¶
K-1
工作项¶
孵化¶
无。
采用¶
无。
库¶
无。
预计 API 稳定¶
无。
文档影响¶
新的 pool 参数将被记录。
依赖项¶
无。
参考资料¶
代码正在审查中: https://review.openstack.org/#/c/125112/
注意
本作品采用知识共享署名 3.0 非移植许可协议授权。 http://creativecommons.org/licenses/by/3.0/legalcode