跳转到: 导航, 搜索

Zaqar/specs/endpoint

Marconi 端点

端点定义了给定传输和存储驱动程序之间的协议。 这样,可以支持多种传输,如 HTTP 和 ZMQ;它们不是互斥的,可以直接从配置文件中启用。

相关的端点被分组到几个控制器中的一个,其接口由抽象基类定义。 存储驱动程序为每种控制器类型提供具体的实现。

有关具体实现,请参阅: HTTP, ZMQ

存储驱动程序暴露的通用端点

存储驱动程序导出 3 个控制器,这些控制器按资源对端点进行分组。

TODO(kgriffs): 定义每个参数和有效范围。

QueueController

  • 列出队列
    • 按字母顺序返回队列名称列表
    • 可选的标记和限制参数以支持分页
    • 在列出时,可以选择包含队列元数据
  • 获取队列元数据
  • 更新或插入队列
    • 队列名称的长度不得超过 512 字节
    • 可以指定任意元数据(可选)。
    • 元数据文档中的顶级字段名称不得以下划线字符开头,因为它是为将来保留的。
    • 元数据大小限制为 4 KiB
    • (对于更新) 客户端提供的文档将完全覆盖现有的元数据(计划在未来的版本中实现部分更新)
  • 删除队列
  • 获取队列统计信息
    • 消息:总数、已声明和已过期(但尚未清除)
  • 获取动作
    • 删除消息
    • 声明消息
    • 更新声明
    • 释放声明
    • 声明过期
    • 消息过期


关于动作消息的说明

TODO: 这已被推迟到 v1.0 之后的版本。

各种代理/工作器与云队列服务的交互可能难以审计和调试。 Marconi 将动作消息发送到特殊队列(因此动作消息使用与常规消息相同的格式),审计员可以从中检索有关特定队列消息的最新动作列表。 然后,审计员可以将这些动作存档以供未来的分析和诊断。

动作消息在 5 分钟后过期,因此审计员应定期轮询动作并将其持久化以供后人使用。

MessageController

  • 获取消息
  • 发布消息
  • 删除消息

ClaimController

  • 声明消息
    • 存储驱动程序会尽最大努力返回请求数量的消息,但可能会返回更少的消息。
  • 查询声明
  • 更新声明
  • 释放声明
  • 声明统计信息

传输特定

以下端点仅适用于特定传输。

WSGI

  • 节点健康状况 (test_reachable)
  • 获取主文档