tlmqtt:基于 Java 的高性能 MQTT Broker 开源项目
项目简介
tlmqtt是一款基于Java开发的轻量级、高并发 MQTT Broker,底层采用Netty异步通信框架与Project Reactor 响应式编程模型,实现了完整的MQTT 3.1.1 协议解析,支持 QoS 0/1/2 消息处理、主题通配符匹配、消息持久化等核心功能。项目模块化设计清晰,提供认证、数据桥接、存储等可扩展组件,适合构建物联网(IoT)、实时通信等场景的消息中间件。
核心特性
1\. 协议与消息处理
- 完整实现MQTT 3.1.1 协议,支持 CONNECT、PUBLISH、SUBSCRIBE 等核心报文解析
- 全链路支持QoS 0/1/2 消息投递,包含消息重发机制(默认 5 秒超时)
- 基于通配符(
+
、#
)的主题过滤与消息转发 - 支持保留消息(Retain Message)和遗嘱消息(Will Message)
2\. 扩展性与集成能力
- 认证模块:支持文件配置、MySQL 数据库、HTTP 接口认证,可自定义认证逻辑
- 数据桥接:内置 Kafka、MySQL 桥接组件,支持通过接口扩展自定义目标系统
- 存储模块:提供内存存储实现,支持扩展 Redis、数据库等持久化方案
- 多协议支持:同时提供 MQTT(1883 端口)和 WebSocket(8083 端口)接入能力
3\. 生产级特性
- 基于 Netty 的高性能异步 IO,支持高并发连接
- 可配置的 SSL/TLS 加密(通过配置文件启用)
- 会话持久化(CleanSession=0 时自动恢复未完成消息)
- 模块化架构设计,支持按需引入组件(如仅使用核心模块或扩展认证功能)
模块架构
模块名称 | 功能描述 |
---|---|
tlmqtt-core | 核心协议解析与消息处理逻辑 |
tlmqtt-auth | 认证模块(文件 / 数据库 / HTTP) |
tlmqtt-bridge | 数据桥接模块(Kafka/MySQL) |
tlmqtt-common | 公共工具类与配置管理 |
tlmqtt-store | 存储接口与默认实现 |
tlmqtt-boot | 启动引导模块(MQTT/WS 服务) |
快速开始
环境要求
- Java 8+
- Maven 3.6+
- 可选依赖:MySQL(认证 / 存储)、Kafka(数据桥接)
1\. 克隆项目
bash
git clone https://github.com/ZHSQJM/tlmqtt.git cd tlmqtt
2\. 配置文件
修改tlmqtt-common/src/main/resources/config.yml
:
yaml
# 会话配置 session: timeout: 30 # 会话超时时间(分钟) delay: 5 # 消息重发延迟(秒) # 端口配置 port: mqtt: 1883 # MQTT默认端口 websocket: 8083 # WebSocket端口 # SSL配置(可选) ssl: enabled: false certPath: /path/to/cert.crt privatePath: /path/to/private.key # 认证配置(默认开启) auth: enabled: true user: - username: "admin" password: "123456"
3\. 启动服务
方式一:直接运行(MQTT 服务)
java
import com.tlmqtt.bootstrap.TlBootstrap; import com.tlmqtt.server.TlMqttServer; public class Main { public static void main(String[] args) { TlBootstrap bootstrap = new TlBootstrap(); bootstrap.setServer(TlMqttServer.class).start(); } }
方式二:启动 WebSocket 服务
java
import com.tlmqtt.bootstrap.TlBootstrap; import com.tlmqtt.server.TlWebSocketServer; public class Main { public static void main(String[] args) { TlBootstrap bootstrap = new TlBootstrap(); bootstrap.setServer(TlWebSocketServer.class).start(); } }
功能示例
1\. 认证功能配置
(1)文件认证(声明式)
在config.yml
中添加用户:
yaml
auth: user: - username: "user1" password: "pass1" - username: "user2" password: "pass2"
(2)编程式认证(自定义逻辑)
java
bootstrap.setAuth(false); // 关闭默认认证 // 或添加自定义认证器 bootstrap.addAuthentication(new AbstractTlAuthentication() { @Override public boolean authenticate(String username, String password) { return "admin".equals(username) && "secret".equals(password); } });
2\. 数据桥接至 MySQL
java
import com.tlmqtt.bridge.mysql.TlMySqlInfo; TlMySqlInfo mysqlInfo = new TlMySqlInfo(); mysqlInfo.setHost("127.0.0.1") .setPort(3306) .setDatabase("mqtt_db") .setTable("messages") .setUsername("root") .setPassword("123456"); bootstrap.addBridgeMysql(mysqlInfo); // 注册MySQL桥接
3\. 自定义存储(以 Redis 为例)
java
import com.tlmqtt.store.SessionService; import com.tlmqtt.store.impl.RedisSessionService; SessionService redisSession = new RedisSessionService("localhost", 6379); bootstrap.setSessionService(redisSession); // 替换默认内存存储
贡献与反馈
欢迎通过以下方式参与项目共建:
- 提交 Issue:反馈 Bug 或提出功能建议
- 提交 PR:优化代码或新增功能(建议先创建 Issue 沟通方案)
- Star/Fork:支持项目持续发展
联系方式:
- 邮箱:2534798858@qq.com
- 项目地址:https://github.com/ZHSQJM/tlmqtt
许可证
本项目采用MIT 许可证,允许商业使用、修改和再发布。详情见LICENSE文件。
tlmqtt致力于为物联网开发者提供轻量、高效的 MQTT 消息服务,期待您的加入! 🚀

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
cURL 8.14.0 发布
cURL 8.14.0 现已发布,具体更新内容包括: Security CVE-2025-4947:使用 wolfSSL 跳过 QUIC 证书检查 CVE-2025-5025:wolfSSL 无法进行 QUIC 证书锁定 Changes 执行 MQTT 时,curl 现在会发送 ping Schannel 后端现在支持包含 CA 证书的 pkcs12 客户端证书 为 OpenSSL 后端添加了CURLOPT_SSL_SIGNATURE_ALGORITHMS和--sigalgs ngtcp2 + OpenSSL 的新 QUIC API 现已支持。需要 OpenSSL 3.5 或更高版本。 wcurl 捆绑在 curl tarball 中 websocket 现在可以禁用 auto-pong 功能
- 下一篇
中科鸿略受邀参加开源鸿蒙开发者大会,携手共创万物智联世界的美好未来!
5月24日,开源鸿蒙开发者大会2025(OHDC.2025,以下简称“大会”)在深圳隆重开幕。会上正式发布了开源鸿蒙5.1 Release版本,并进行开源鸿蒙应用技术组件共建启动、开源鸿蒙AI Agent技术共建启动等重要仪式,同时设立八大主题分论坛,邀请开源操作系统技术专家、前沿实践专家、开发者、生态伙伴代表等嘉宾汇聚一堂,共同探讨开源鸿蒙技术的未来发展、分享最前沿的开发经验。 北京市中科鸿略科技有限公司(以下简称“中科鸿略”)作为OH项目工作组重要成员,受邀出席本次大会,参与多项发布仪式,并于硬件分论坛发表主题演讲。 作为东方中科控股的专注开源鸿蒙技术研发的企业,中科鸿略自成立之初一直专注于开源鸿蒙操作系统的适配与移植工作和重点行业的拓展,是业内领先的开源鸿蒙一体化场景与发行版厂商。目前已经帮助伙伴完成上百台不同型号、不同芯片的硬件开源鸿蒙化的适配工作,相信本次开源鸿蒙5.1 Release版本的发布,必将使得中科鸿略为各行业客户提供的商业发行版在原能力基础上更进一步。 在AI分论坛现场,开源鸿蒙AI Model SIG启动仪式正式启航,公司总经理樊洪光参加了本次开源鸿蒙AI Mo...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Redis,开启缓存,提高访问速度