基本配置¶
zaqar.conf 配置文件是 INI 文件格式。
该文件位于 /etc/zaqar。如果在 ~/.zaqar 目录下存在 zaqar.conf 文件,则会使用该文件,而不是 /etc/zaqar 目录中的文件。当您手动安装消息服务时,必须使用 Zaqar 安装目录中的配置示例生成器生成 zaqar.conf 文件,并根据您的偏好进行自定义。
要生成示例配置文件 zaqar/etc/zaqar.conf.sample
# pip install tox
$ cd zaqar
$ tox -e genconfig
其中 zaqar 是您的消息服务安装目录。
然后将消息服务配置示例复制到 /etc/zaqar 目录
# cp etc/zaqar.conf.sample /etc/zaqar/zaqar.conf
有关配置选项的列表,请参阅本指南中的表格。
重要提示
请勿在配置选项周围指定引号。
消息 API 配置¶
消息服务有两个 API:用于 WSGI 传输驱动程序的 HTTP REST API,以及用于 Websocket 传输驱动程序的 Websocket API。消息服务一次只能使用一个传输驱动程序。
API 的功能和行为由 API 版本定义。例如,Websocket API v2 与 HTTP REST API v2 相同。目前 HTTP REST API 有 v1、v1.1 和 v2 版本,Websocket API 只有 v2 版本。
每个 API 版本中的权限控制选项
v1 没有权限选项。
v1.1 只有
admin_mode选项,该选项控制访问池和风味功能的全局权限。v2 只有
RBAC 策略选项:
policy_default_rule、policy_dirs、policy_file,这些选项控制不同类型用户访问不同类型功能的权限。警告
自 Zaqar 12.0.0 (Wallaby) 以来,JSON 格式的策略文件已被弃用。此 oslopolicy-convert-json-to-yaml 工具将以向后兼容的方式将现有的 JSON 格式策略文件迁移到 YAML。
secret_key选项,用于定义用于对特殊 URL 进行签名的密钥。这些称为预签名 URL,为系统外部人员提供临时权限。
通知选项¶
可以通过将 zaqar.notification.notifier 阶段添加到消息存储层管道来启用消息服务中的通知功能。为此,请确保将 zaqar.notification.notifier 添加到 [storage] 部分的 message_pipeline 选项中 zaqar.conf
[storage]
message_pipeline = zaqar.notification.notifier
池化选项¶
消息服务支持池化。
池化的目的是在不损失任何灵活性情况下,使消息服务具有高度可扩展性,允许用户使用多个后端。
存储驱动程序选项¶
存储后端¶
消息服务支持多种不同的存储后端(存储驱动程序),用于存储管理信息、消息及其元数据。推荐的存储后端是 MongoDB。有关如何指定存储后端的信息。
当选择存储后端时,相应的后端选项将变为活动状态。例如,如果 Redis 被选为管理存储后端,则 [drivers:management_store:redis] 部分中的选项将变为活动状态。
存储层管道¶
管道是处理请求所需的一组阶段。当新的请求到达消息服务时,它首先通过传输层管道,然后通过一个存储层管道,具体取决于每个特定请求的操作类型。例如,如果消息服务收到与队列相关的操作请求,则存储层管道将是 queue pipeline。消息服务始终将实际的存储控制器作为最终的存储层管道阶段。
通过设置 [storage] 部分的选项 zaqar.conf,您可以将其他阶段添加到这些存储层管道
声明管道
消息管道带有内置阶段可供使用
zaqar.notification.notifier- 在每个传入队列的消息上向队列订阅者发送通知,换句话说,启用通知功能。
队列管道
订阅管道
存储层管道选项默认情况下为空,因为额外的阶段会影响消息服务的性能。根据阶段,选项值的列出顺序可能重要也可能不重要。
您可以将外部阶段添加到存储层管道。有关如何编写和添加自己的外部阶段的信息,请参阅 编写存储管道阶段 教程。
消息日志文件¶
每个消息服务的相应日志文件存储在主机上的 /var/log/zaqar/ 目录中。
日志文件名 |
将日志记录到文件的服务 |
|---|---|
|
消息服务 |