欢迎来到 Zaqar 文档!

Zaqar 是一个多租户云消息传递和通知服务,面向 Web 和移动开发者。

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

其他 OpenStack 组件可以与 Zaqar 集成,以便将事件呈现给最终用户,并与在“over-cloud”层中运行的客户代理进行通信。

主要特性

Zaqar 提供以下主要特性

  • 两种通信传输方式的选择。两者均支持 Keystone

    • 防火墙友好型、基于 HTTP 的 RESTful API。 许多今天的开发者更喜欢更友好的 HTTP API。 他们重视该协议的简单性和透明性,其防火墙友好性,以及其庞大的工具、负载均衡器和代理生态系统。 此外,云运营商也欣赏 REST 架构风格的可扩展性方面。

    • 基于 Websocket 的 API,用于持久连接。 Websocket 协议通过持久连接提供通信。 与为每个请求/响应对打开新连接的 HTTP 不同,Websocket 可以在单个 TCP 连接上传输多个请求/响应。 它节省了大量的网络流量并最大限度地减少了延迟。

  • 基于 Keystone 项目 ID 的多租户队列。

  • 支持几种常见模式,包括事件广播、任务分发和点对点消息传递。

  • 基于组件的架构,支持自定义后端和消息过滤器。

  • 高效的参考实现,着眼于低延迟和高吞吐量(取决于后端)。

  • 高可用性和水平可扩展性。

  • 支持队列订阅。 几种通知类型可用

    • 电子邮件通知。

    • Webhook 通知。

    • Websocket 通知。

项目范围

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

设计原则

Zaqar 与所有 OpenStack 项目一样,都遵循以下准则进行设计

  • 基于组件的架构。 快速添加新行为

  • 高可用性和可扩展性。 扩展到非常重要的工作负载

  • 容错性。 隔离的进程避免级联故障

  • 可恢复性。 故障应该易于诊断、调试和修复

  • 开放标准。 成为社区驱动的参考实现

目录