本地通知驱动¶
通过本地 Unix socket 导出 oslo 通知。
问题描述¶
目前,如果两个守护进程/代理位于同一主机上,并且其中一个想要消费另一个的通知,则没有实用的驱动程序可以使用,而无需使用非本地网络、复杂的设置或滥用多个功能来模拟本地通知驱动程序。
作为操作员,我希望能够以最少的配置、开销或维护来本地消费通知。
提议的变更¶
为了解决这个差距,本规范建议添加一个最小的 Unix socket 驱动程序,该驱动程序会将所有通知中继到 socket 的任何订阅者。
为了将资源利用率和复杂性降至最低,Unix socket 驱动程序不会在没有客户端的情况下排队通知,而是会丢弃所有通知
可以通过使用多个驱动程序实例或通过单个 socket 进行复用来支持多个客户端。
与日志驱动程序一样,Unix socket 驱动程序会将消息序列化为 JSON。
备选方案¶
操作员可能会滥用通知日志驱动程序,将其发送到 Python 日志系统,然后使用 Python 日志处理程序将通知主题的日志流重定向到 Unix socket。
操作员可以使用 AMQP 以及本地或远程消息总线。
Impact on Existing APIs¶
无
安全影响¶
无。简单的文件系统用户和组将为 socket 提供安全性。
性能影响¶
无。预计开销很小,类似于 Python 日志驱动程序。
Configuration Impact¶
驱动程序将提供一个新的配置选项来指定 socket URI。如果使用该驱动程序,这将是必需的。
[oslo_messaging_notifications]
sock_path=/run/<service>/notifications.sock
开发人员影响¶
无
Testing Impact¶
测试面预计会很小且简单,将提供与日志驱动程序一致的单元和功能测试。目前不计划通过基于 DevStack 的专用作业进行集成测试,尽管如果需要,可以扩展现有的作业以也启用它。
实现¶
负责人¶
- 主要负责人
sean-k-mooney
里程碑¶
完成目标里程碑:里程碑 2
工作项¶
添加驱动程序
添加测试
发布说明和文档
盈利
文档影响¶
文档影响将仅限于配置选项和发布说明
依赖项¶
无
参考资料¶
无
注意
本作品采用知识共享署名 3.0 非移植许可协议授权。 http://creativecommons.org/licenses/by/3.0/legalcode