工具介绍
Gmqtt 是一款灵活、高性能的 MQTT 代理库,完全实现了 MQTT 协议 V3.x 和 V5 在 Golang 中的实现。
项目状态 由于个人原因,本项目的维护工作较少。以下是一些信息,供想要使用本项目的人员参考。 Gmqtt 在生产环境中使用并表现良好。生产环境中有数百个客户端(现在可能有数千或 10 千个),每个客户端每 15 秒发布一次 QoS 1 消息来报告其状态。云端的订阅者会将这些状态存储到持久化后端。所有客户端都是非持久性会话,使用 v3.1.1 协议。建议在生产环境中运行之前仔细评估和测试。
特性
- 提供钩子方法,用于自定义代理行为(身份验证、访问控制列表等)。详细信息请参阅
server/hooks.go。
- 支持 TLS/SSL 和 WebSocket。
- 提供灵活的可插拔机制。详细信息请参阅
server/plugin.go 和 /plugin。
- 提供 Go 接口,用于扩展与服务器交互。例如,扩展或插件可以通过函数调用发布消息或添加/删除订阅。详细信息请参阅
server/server.go 中的 Server 接口和 admin。
- 提供指标(通过使用 Prometheus)。(插件:prometheus)
- 提供 GRPC 和 REST API 与服务器交互。(插件:admin)
- 提供会话持久化,这意味着代理在重启后可以恢复会话数据。目前,仅支持 Redis 后端。
- 提供集群化,请参阅 联合插件 以获取示例和详细信息。(警告:这是一个实验性功能,尚未在生产环境中使用。)
开始使用 gmqtt 要开始使用 gmqtt,我们需要从源代码编译它。请确保您拥有一个可用的 Go 环境。
中文文档