欢迎来到 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 项目一样,都遵循以下准则进行设计
基于组件的架构。 快速添加新行为
高可用性和可扩展性。 扩展到非常重要的工作负载
容错性。 隔离的进程避免级联故障
可恢复性。 故障应该易于诊断、调试和修复
开放标准。 成为社区驱动的参考实现