开源物联网平台选型对比:ThingsBoard vs FastBee vs EMQX
为什么需要物联网平台
你的IoT设备量从10台涨到1000台的时候,问题开始出现:
- 设备怎么注册和管理?
- 数据怎么存储和查询?
- 规则引擎怎么做(温度超过80度报警)?
- OTA怎么批量推送?
- 多租户和权限怎么管?
这些问题自己从头写,少则3个月多则半年。用现成的开源物联网平台,1周就能跑起来。
2026年最值得关注的几个开源物联网平台:ThingsBoard、FastBee、EMQX。选哪个?这取决于你的团队技术栈和项目需求。
平台对比
ThingsBoard
技术栈:Java + Spring Boot(后端),Vue.js(前端),PostgreSQL/PostGIS(数据)
优势:
- 社区最活跃,GitHub 17k+ Star
- 文档完善,英文为主但有中文社区翻译
- 规则引擎可视化设计,支持复杂的消息处理链
- 自带仪表盘编辑器,拖拽式生成数据可视化
- 支持MQTT、CoAP、HTTP、LwM2M多协议
- 资产管理和设备管理功能完整
劣势:
- Java生态,部署重(需要至少2GB内存起步)
- 学习曲线较陡,概念多(Device、Asset、Customer、Dashboard)
- 深度定制需要理解Java代码
- 默认时序数据库推荐Cassandra,运维复杂
适用场景:中大型项目,团队有Java经验,需要可视化仪表盘
FastBee
技术栈:Spring Boot + Vue + MQTT(内置)
优势:
- 国产开源,文档和社区以中文为主
- 内置MQTT服务端,不需要额外部署EMQX
- 前端Vue + ElementUI,上手门槛低
- 支持微信小程序、Android、iOS、H5移动端
- 设备端兼容ESP32/ESP8266,有现成的Arduino SDK
- 部署相对轻量
劣势:
- 社区规模和生态不如ThingsBoard
- 规则引擎功能较弱
- 仪表盘不如ThingsBoard灵活
- 深度定制能力有限
适用场景:中小型项目,国产化要求,团队以Vue/Spring Boot为主技术栈
EMQX(MQTT Broker)
严格来说EMQX不是物联网平台,是MQTT Broker。但它在物联网架构中的地位太重要了。
技术栈:Erlang
优势:
- 百万级并发连接
- 规则引擎SQL语法,消息过滤转发
- Dashboard实时监控连接状态和消息流量
- 支持MQTT 3.1/3.1.1/5.0
- 桥接和集群能力
劣势:
- 只做消息层,不管设备管理和数据存储
- 需要配合其他组件(如时序数据库)使用
适用场景:任何需要大规模MQTT接入的项目,作为基础设施层
功能维度对比
| 功能 | ThingsBoard | FastBee | EMQX |
|---|---|---|---|
| 设备管理 | 强 | 中 | 无 |
| MQTT Broker | 内置 | 内置 | 核心功能 |
| 规则引擎 | 可视化 | 基础 | SQL语法 |
| 仪表盘 | 强 | 中 | 无 |
| OTA升级 | 支持 | 支持 | 无 |
| 多租户 | 支持 | 支持 | 不适用 |
| 协议支持 | MQTT/CoAP/HTTP/LwM2M | MQTT/HTTP | MQTT/CoAP |
| 时序数据 | Cassandra/PostgreSQL | MySQL | 不适用 |
| 部署复杂度 | 中高 | 低 | 低 |
| 中文文档 | 社区翻译 | 原生中文 | 有中文 |
| 社区活跃度 | 高 | 中 | 高 |
部署方案建议
方案A:ThingsBoard + EMQX(推荐中大型项目)
设备 -> EMQX(MQTT) -> ThingsBoard(规则引擎/仪表盘) -> PostgreSQL(数据)
ThingsBoard可以用内置的MQTT Broker,但设备量超过1万台时建议外挂EMQX作为独立Broker。
方案B:FastBee单机部署(推荐中小型项目)
设备 -> FastBee(内置MQTT) -> MySQL(数据)
500台设备以内,一台4核8G的云服务器够了。
方案C:EMQX + 自研后端(推荐有开发能力的团队)
设备 -> EMQX(MQTT) -> 自研后端(PHP/Go/Java) -> 数据库
如果你需要深度定制业务逻辑,不想被平台框架约束,只借用EMQX的消息能力,然后自己写业务层。这是灵活度最高但开发量也最大的方案。
我们的选择
在虎王科技的物联网项目中,我们走的是方案C。
原因:
- 我们的团队技术栈是PHP + Go,Java项目改造成本高
- 设备管理需要跟现有的客户管理系统深度集成
- 业务逻辑定制化程度高,通用平台的规则引擎不够用
架构:
ESP32设备 -> EMQX -> Go微服务(消息处理) -> MySQL + Redis
|
PHP后端(管理界面/API)
EMQX的规则引擎做第一层消息过滤和路由,Go微服务处理实时数据写入和告警,PHP后端负责设备管理、用户管理、套餐管理等业务逻辑。
这套架构跑了1年多,目前管理3000+台设备,运行稳定。
Docker部署示例
以FastBee为例(最简单的部署方式):
version: '3'
services:
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: your_password
MYSQL_DATABASE: fastbee
volumes:
- ./data/mysql:/var/lib/mysql
fastbee:
image: fastbee/server:latest
ports:
- "8080:8080" # Web管理
- "1883:1883" # MQTT
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/fastbee
SPRING_DATASOURCE_USERNAME: root
SPRING_DATASOURCE_PASSWORD: your_password
depends_on:
- mysql
docker-compose up -d 一键启动,5分钟内跑起来。
选型建议
| 你的情况 | 推荐 |
|---|---|
| 快速验证POC | FastBee |
| 需要可视化仪表盘 | ThingsBoard |
| 设备量>1万台 | ThingsBoard + EMQX |
| 团队有Java经验 | ThingsBoard |
| 团队有PHP/Go经验 | EMQX + 自研 |
| 国产化要求 | FastBee |
| 需要LwM2M协议 | ThingsBoard |
总结
没有最好的物联网平台,只有最适合你团队和项目的。ThingsBoard功能最全但学习成本高,FastBee部署简单但扩展性有限,EMQX是消息层的可靠选择。
关键想清楚三个问题:设备规模多大?团队技术栈是什么?需要多深度的定制?想清楚了,选型就不纠结了。
沧州虎王科技,专注物联网软硬件开发、通信设备、嵌入式系统与设备管理平台。
更多推荐
所有评论(0)