这个项目能做什么

QPub Server 是一个可自托管的 messaging server,将实时 pub/sub Channels 与 job Queues 结合在一起,并通过 REST 和 WebSocket 接口对外提供。它面向希望运行自有 messaging 基础设施、而不依赖托管服务的团队。 核心能力 - Channels:通过 WebSocket 提供 publish/subscribe messaging,并可通过 REST 进行发布。 - Job queues:将工作项入队和拉取、运行 workers,并接收 webhooks。 - 多租户:租户之间相互隔离,并可对其应用速率限制。 - 认证:API keys 和 client tokens 保护访问;单独的控制 token 保护 provisioning API。 - Control API:管理租户、API keys、限制、queues 和 workers,并检查实时统计信息和连接。 后端服务 该服务器依赖 NATS JetStream、Redis 和 Postgres,并通过 driver 设置支持 CockroachDB 作为替代数据库。 快速开始 README 建议复制示例环境文件并运行 Docker Compose,这会启动 Postgres 以及 Redis 和 NATS。默认端口为:Control API 使用 8091,REST 使用 8111,WebSocket 使用 8131。必须先通过 Control API 创建租户和 API key,然后才能进行 REST 或 WebSocket 调用。文档还介绍了使用 Go 工具链进行本地构建的路径,要求通过环境配置能够访问相同的后端服务。 Control API 使用 bearer token 或自定义 header 进行认证;如果 token 留空,则 control API 处于开放状态,README 指出这仅用于本地开发。文档中的 endpoints 涵盖健康检查、实例身份和指标、租户创建、列出、获取和删除、按租户统计、连接、channels、速率限制、API keys、queues 和 workers。 该项目采用 Apache License 2.0 许可。