统一 MQTT 认证。单一轻量级 HTTP 网关。
将 EMQX、Mosquitto 和 VerneMQ 统一接入现有 REST 后端,无需编写繁琐的 Broker 专有插件。通过内置 Web 管理面板即可轻松管理路由、查看健康探测与访问日志。
开箱即用的 /gateway/ Web 控制中心。
完全不需要额外搭建 Grafana、Kibana 或数据库集群。在内置控制台中即可直观监测健康探针、分析 P95 延迟分布并实时审计鉴权决策日志。
无需再维护脆弱的 Broker 专有插件。
通过 C、Erlang 或 Lua 编写的专有插件将 Broker 与数据库强绑定,容易引发单点故障与升级灾难。MQTT-GATEWAY 将所有鉴权解耦为标准 HTTP。
与 Broker 二进制强耦合
高耦合且脆弱Mosquitto 的 C 插件、EMQX 的 Erlang 钩子以及 VerneMQ 的 Lua 脚本需要单独编译维护,且每次升级 Broker 都可能引发崩溃。
- 每种 Broker 及其特定版本都需要单独编译适配插件
- Broker 进程直连核心数据库,存在严重安全与性能瓶颈
- 修改路由规则或后端目标必须重启整个 Broker 集群
纯 HTTP Webhook 干净解耦
HTTP 干净解耦所有 Broker 统一向 8085 端口的 MQTT-GATEWAY 发送 Webhook。网关负责归一化数据并转发至您现有的业务后端。
- Mosquitto、EMQX 和 VerneMQ 统一遵循相同的 REST 规范
- 无需配置任何外部数据库,采用本地原子化安全存储
- 通过 Web 后台或 API 在线动态调整路由,无需重启网关
请求在网关中的流转全过程。
当 IoT 设备发起连接或发布消息时,MQTT-GATEWAY 通过您的 REST 服务进行毫秒级鉴权与响应。
Broker 触发 Webhook
客户端连接至 Mosquitto、EMQX 或 VerneMQ。Broker 自动向 8085 端口发送 HTTP 认证或 ACL 请求。
前缀智能匹配与分发
网关根据客户端 ID 或主题前缀(如 core_* 与 tel_*),通过 Java 25 虚拟线程高效分发调用。
业务后端返回鉴权结果
您的业务服务验证凭据后,直接返回标准简洁的 JSON:{"result": "allow"}。
// POST /api/v1/auth (Dispatched to your backend)
// Optional header: X-EMQX-API-KEY: your-backend-secret
{
"clientid": "core_sensor_098",
"username": "fleet_device_prod",
"password": "••••••••••••",
"ipaddress": "192.168.1.104",
"protocol": "MQTT"
}
// HTTP/1.1 200 OK (From your backend to MQTT-GATEWAY)
{
"result": "allow",
"is_superuser": false
}
// Valid result values: "allow", "deny", or "ignore"
# Initial configuration (or manage live at /gateway/)
gateway:
timeout-ms: 2000
global-topics: [heart, ping]
auth:
- prefixes: [core_, android_, ios_, web_]
url: http://core-backend:8090/api/v1/emqx/auth
- prefixes: [tel_]
url: http://telemetry-backend:8080/api/v1/emqx/auth
acl:
- prefixes: [v1/, core/]
url: http://core-backend:8090/api/v1/emqx/acl
极简运维,专为生产环境稳定性打造。
融合 Quarkus 原生二进制的高性能与生产运维所需的实时可观测性。
零外部数据库依赖
纯自主运行,内置本地安全原子存储与内存缓存。网关层完全不需要部署或维护 MySQL、PostgreSQL 或 Redis。
内置 Web 管理控制台
直接访问 /gateway/ 查看在线后端健康状态、动态调整路由规则,并实时监控访问决策审计日志。
热更新在线路由调度
通过 REST Admin API 或控制台在线添加、暂停或编辑后端路由,零 Downtime,不中断在线 MQTT 流量。
主动健康探测与故障追踪
通过虚拟线程每 30 秒自动探测后端存活状态,统计 P95 延迟,并在服务中断时自动记录详细故障时长与原因。
单行命令即可快速上线运行。
从 GitHub Container Registry 获取多架构容器镜像,或直接使用 Docker Compose 启动全套集成测试环境。
# Run MQTT-GATEWAY on port 8085
docker run -d \
--name mqtt-gateway \
-p 8085:8085 \
-e GATEWAY_ADMIN_PASSWORD=admin-secret \
ghcr.io/kgvicente/mqtt-gateway:latest
# Open the admin panel at http://localhost:8085/gateway/
# docker compose up --build --wait
# Spins up the gateway, demo backend, and Mosquitto with automated tests
git clone https://github.com/kgvicente/mqtt-gateway.git
cd mqtt-gateway
docker compose up --build --wait
# Open http://localhost:18085/gateway/ (admin / local-demo-admin-2026)
# Check gateway readiness and liveness
curl http://localhost:8085/q/health
# Response:
{
"status": "UP",
"checks": []
}