Zaqar/specs/endpoint
< Zaqar
目录
Marconi 端点
端点定义了给定传输和存储驱动程序之间的协议。 这样,可以支持多种传输方式,例如 HTTP 和 ZMQ;它们不是互斥的,可以直接从配置文件中启用。
相关的端点被分组到几个控制器中,其接口由抽象基类定义。 存储驱动程序为每种控制器类型提供具体的实现。
存储驱动程序暴露的通用端点
存储驱动程序导出 3 个控制器,这些控制器按资源对端点进行分组。
TODO(kgriffs): 定义每个参数和有效范围。
QueueController
- 列出队列
- 按字母顺序返回队列名称列表
- 可选的标记和限制参数以支持分页
- 在列出时,可以选择包含队列元数据
- 获取队列元数据
- 创建或更新队列
- 队列名称的长度不得超过 512 字节
- 可以指定任意元数据(可选)。
- 元数据文档中的顶级字段名称不得以下划线字符开头,因为它是为将来保留的。
- 元数据大小限制为 4 KiB
- (对于更新) 客户端提供的文档将完全覆盖现有的元数据(计划在未来的版本中实现部分更新)
- 删除队列
- 获取队列统计信息
- 消息:总数、已声明和已过期(但尚未清除)
- 获取动作
- 删除消息
- 声明消息
- 更新声明
- 释放声明
- 声明过期
- 消息过期
关于动作消息的说明
TODO: 这已被推迟到 v1.0 之后的版本。
各种代理/工作器与云队列服务的交互可能难以审计和调试。 Marconi 将动作消息发送到特殊队列(因此动作消息使用与常规消息相同的格式),审计员可以从中检索有关特定队列消息的最新操作列表。 然后,审计员可以将这些操作存档以供将来分析和诊断。
动作消息在 5 分钟后过期,因此审计员应定期轮询操作并将其持久化以供后人使用。
MessageController
- 获取消息
- 发布消息
- 删除消息
ClaimController
- 声明消息
- 存储驱动程序会尽最大努力返回请求数量的消息,但可能会返回更少的消息。
- 查询声明
- 更新声明
- 释放声明
- 声明统计信息
传输特定
以下端点仅适用于特定的传输。
WSGI
- 节点健康状况 (test_reachable)
- 获取主文档