跳转到: 导航, 搜索

Zaqar

项目

Zaqar

官方名称 OpenStack 消息服务
源代码 https://github.com/openstack/zaqar
Bug 追踪器 https://bugs.launchpad.net/zaqar
功能跟踪 https://blueprints.launchpad.net/zaqar
贡献者文档 https://docs.openstack.org/developer/zaqar/

Python Zaqar Client

源代码 https://github.com/openstack/python-zaqarclient
Bug 追踪器 https://bugs.launchpad.net/python-zaqarclient
功能跟踪 https://blueprints.launchpad.net/python-zaqarclient

概述

Zaqar 是一个为 Web 和移动开发者提供的多租户云消息服务。它结合了亚马逊 SQS 产品所开创的理念,并增加了额外的语义来支持事件广播。

该服务具有完全 RESTful 的 API,开发者可以使用它通过各种通信模式在他们的 SaaS 和移动应用程序的各个组件之间发送消息。在这个 API 背后是一个高效的消息引擎,在设计时就考虑了可扩展性和安全性。

其他 OpenStack 组件可以与 Zaqar 集成,以便将事件呈现给最终用户,并与在“云上层”中运行的客户代理进行通信。云运营商可以利用 Zaqar 为他们的客户提供 SQS 和 SNS 的等效服务。

主要特性

Zaqar 提供了以下主要特性

  • 两种通信传输方式的选择。两者都支持 Keystone
    • 防火墙友好型、基于 HTTP 的 RESTful API
      • 当今的许多开发者更喜欢更 Web 友好的 HTTP API。他们重视该协议的简单性和透明性、其防火墙友好性以及其庞大的工具、负载均衡器和代理生态系统。此外,云运营商也欣赏 REST 架构风格的可扩展性方面。
    • 基于 WebSocket 的 API,用于持久连接。
      • WebSocket 协议通过持久连接提供通信。与每次请求/响应对都需要打开新连接的 HTTP 不同,WebSocket 可以在单个 TCP 连接上传输多个请求/响应。它可以节省大量的网络流量并最大限度地减少延迟。
  • 基于 Keystone 项目 ID 的多租户队列
  • 支持几种常见的模式,包括事件广播、任务分发和点对点消息传递(参见 Zaqar 用例
  • 基于组件的架构,支持自定义后端和消息过滤器
  • 高效的参考实现,注重低延迟和高吞吐量(取决于后端)
  • 高可用性和水平可扩展性(参见 服务器架构
  • 支持队列订阅。有几种通知类型可用
    • 电子邮件通知
    • Webhook 通知
    • WebSocket 通知

项目范围

Zaqar API 是面向数据的。也就是说,它不配置消息代理并直接将其暴露给客户端。相反,API 充当客户端和一个或多个后端之间的桥梁。消息代理的配置服务——尽管很有用——服务于与 Zaqar 今天所针对的市场略有不同的市场。考虑到这一点,如果用户对代理配置服务感兴趣,社区应该考虑启动一个新项目来解决这一需求。

设计原则

Zaqar 与所有 OpenStack 项目一样,都以以下准则为设计基础

  • 基于组件的架构。 快速添加新行为
  • 高可用性和可扩展性。 扩展到非常重要的工作负载
  • 容错性。 隔离的进程避免级联故障
  • 可恢复性。 故障应该易于诊断、调试和纠正
  • 开放标准。 成为社区驱动的参考实现

状态

Zaqar 已经为小型和中型工作负载做好生产准备。该项目在 Rackspace 和其他公司中处于生产状态,并且其他公司正在将其部署到自己的云中。Python 中 v2 API 的支持在 python-zaqarclient 中可用,并且通过 Rackspace 支持的 SDK 提供其他语言的支持。

文档

目前(在 Mitaka 发布周期内),Zaqar 团队正在重做 Zaqar 文档。

Zaqar 配置参考

消息服务配置参考

Zaqar 贡献者指南

Zaqar 贡献者指南

Zaqar RESTful API 规范

其他文档

“入门指南”、“Zaqar RESTful API v1.0 指南和参考”目前未托管在任何地方,但您可以从 Zaqar 源代码仓库生成这些文档。操作方法如下:

  1. 确保您的系统上安装了 mavengit 程序。
  2. 通过执行 git clone https://github.com/openstack/zaqar.git 在您机器上首选的目录中克隆 Zaqar 仓库
  3. 在克隆的仓库内的 doc/user-guide 目录中执行 mvn clean generate-sources 以从源代码生成文档 html 文件。
  4. 您可以通过在浏览器中打开生成的 html 文件来查看文档
    1. 入门指南:doc/user-guide/zaqar-get-started/target/docbkx/webhelp/zaqar-get-started/index.html
    2. Zaqar 配置参考:doc/user-guide/zaqar-config-ref/target/docbkx/webhelp/zaqar-config-ref/index.html
    3. Zaqar API v1.0 指南和参考:doc/user-guide/zaqar-api-ref/target/docbkx/webhelp/zaqar-api-ref/index.html

资源

Zaqar 团队在 Freenode 的 #openstack-zaqar 中闲聊。随时过来与我们聊天;团队很高兴听到您的想法和解答问题。如果您遇到错误,请使用我们的 问题跟踪器 报告它。

常见问题解答

发布

演讲

  • Alejandro Cabrera。Rackspace Atlanta。介绍 Openstack Marconi。2013 年 7 月 17 日。YouTube Speaker Deck
  • Flavio Percoco。EuroPython 2013。Marconi:Openstack 的队列和通知服务。2013 年 7 月 2 日。YouTube
  • Kurt Griffiths,Allan Metts。Openstack Summit 2013 年 4 月。项目概述:OpenStack 队列和通知服务(“Marconi”)。2013 年 4 月。YouTube
  • Kurt Griffiths,Flavio Percoco,Allan Metts。Openstack Summit 2013 年 11 月。Openstack 队列和通知服务。2013 年 11 月。YouTube
  • Yeela Kaplan。EuroPython 2014。OpenStack 队列和通知服务(“Marconi”)。2014 年 7 月 22 日。YouTube

文章

社区

贡献者信息

Zaqar 贡献者指南

注意:如果您找不到所需的信息,请通过 IRC(#openstack-zaqar)与我们联系,我们很乐意为您提供帮助。

设计

质量工程

社区

管理事项