diff --git a/README.md b/README.md index fd1202640d10da0c646f4ebebbb6f07fb4bf1983..3afb9adb581d8213e6de9825de2d10e49f8ec03b 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,99 @@ +# Smart-MQTT 项目文档 + ## 项目介绍 -smart-mqtt 是用 java 语言开发的 MQTT Broker 服务,也是 smartboot 组织下首款真正意义上面向物联网的解决方案。旨在帮助企业以较低的成本快速搭建稳定、可靠的物联网服务,助力万物互联互通。 -![输入图片说明](https://smartboot.tech/assets/img/framework.87b57b29.svg) +Smart-MQTT 是一个高性能、可扩展的MQTT消息代理服务器,旨在为企业级物联网应用提供稳定可靠的消息传输服务。该项目支持大规模连接和分布式部署,适用于各种物联网场景。 + +## 产品特色 +- **高性能**:基于Netty实现,支持高并发连接。 +- **分布式架构**:通过插件支持集群部署,实现负载均衡和故障转移。 +- **企业级功能**:提供插件管理、用户权限控制、监控仪表板等企业级功能。 +- **易用性**:提供RESTful API和Web界面,便于管理和监控。 +- **安全性**:支持SSL/TLS加密通信,保障数据传输安全。 -smart-mqtt 底层通信采用了异步非阻塞通信框架 smart-socket,现已实现了完整的 mqtt v3.1.1/v5.0 协议。 +## 安装指南 -> smart-mqtt 代码仅供个人学习使用,**任何个体、组织未经授权不得将此产品用于商业目的**。 +### 环境要求 +- Java 1.8 或更高版本 +- Maven 3.x +- Git -## 项目发展 -- 2018年,创建 smart-mqtt 项目,完成基本的协议编解码结构搭建。 -- 2019~2021年,项目基本处于停更状态,期间重心在于提升底层通信框架 smart-socket 的性能。 -- 2022年,重启 smart-mqtt。基本完成 mqtt broker 和 client 的功能开发。 -- 2023年,smart-mqtt企业版立项。 -- 2025年,smart-mqtt企业版功能全面开源。 +### 安装步骤 +1. **克隆仓库** + ```bash + git clone https://gitee.com/smartboot/smart-mqtt.git + cd smart-mqtt + ``` -## 产品特色 +2. **编译项目** + ```bash + mvn clean install + ``` + +3. **启动 Broker** + ```bash + cd smart-mqtt-broker + mvn exec:java + ``` + +4. **安装插件(可选)** + - 插件位于 `plugins/` 目录下。 + - 将插件 JAR 文件放入 `plugins` 文件夹,并在配置文件中启用插件。 + +## 使用说明 + +### 启动 Broker +默认情况下,Broker 会在 `0.0.0.0:1883` 上监听 MQTT 连接。你可以通过修改 `smart-mqtt-broker/src/main/resources/config.properties` 来调整配置。 + +### 插件管理 +Smart-MQTT 支持动态加载插件,插件可以扩展 Broker 的功能: +- **插件安装**:将插件 JAR 文件放入 `plugins` 目录,并通过 REST API 或 Web 控制台启用插件。 +- **插件卸载**:通过 REST API 或 Web 控制台停用并删除插件文件。 +- **插件配置**:每个插件都有自己的配置文件,通常位于 `plugins/config/` 目录下。 + +### RESTful API +Smart-MQTT 提供了丰富的 RESTful API 接口用于管理 Broker 和插件: +- **获取节点信息**:`GET /api/cluster/nodes` +- **获取插件列表**:`GET /repository` +- **启用插件**:`POST /plugin/enable` +- **禁用插件**:`POST /plugin/disable` +- **上传插件**:`POST /plugin/upload` + +### Web 控制台 +访问 `http://localhost:8080`(默认端口)进入 Smart-MQTT 的 Web 控制台,可以进行以下操作: +- 查看当前连接的客户端 +- roller +- 管理插件 +- 查看系统日志和性能指标 + +## 配置参数 + +### Broker 配置 +- `host`: Broker 监听的 IP 地址,默认为 `0.0.0.0` +- `port`: Broker 监听的端口,默认为 `1883` +- `threadNum`: 工作线程数,默认为 CPU 核心数 +- `bufferSize`: 缓冲区大小,默认为 `1024 * 1024` +- `lowMemory`: 是否启用低内存模式,默认为 `false` -- 国产血统:从底层通信(smart-socket)直至应用层 Broker 服务(smart-mqtt)皆为自研。 -- 开箱即用:零配置即可启动 MQTT Broker 服务。 -- 灵活扩展:通过插件机制,提供高度自由的定制化能力。 -- 高能低耗:运用设计和算法技巧充分发挥硬件能力。 -- 极致轻量:极少的外部依赖,发行包不足 3MB。 +### 插件配置 +插件配置通常位于 `plugins/config/` 目录下的 `plugin.yaml` 文件中,具体参数取决于插件类型。例如: +- `core`: 是否为核心节点(集群插件) +- `host`: 插件绑定的主机地址 +- `port`: 插件监听的端口 +- `clusters`: 集群节点列表 +## 注意事项 +- **插件兼容性**:确保插件版本与 Broker 版本兼容。 +- **性能调优**:根据实际负载调整线程数和缓冲区大小。 +- **安全性**:启用 SSL/TLS 加密以保障通信安全。 +- **日志监控**:定期检查日志文件,确保系统运行正常。 +- **备份配置**:插件配置和 Broker 配置应定期备份,防止配置丢失。 +## 技术支持 +如需技术支持或遇到问题,请联系: +- 邮箱:zhengjunweimail@163.com +- Gitee 项目主页:[https://gitee.com/smartboot/smart-mqtt](https://gitee.com/smartboot/smart-mqtt) +- GitHub 项目主页:[https://github.com/smartboot/smart-mqtt](https://github.com/smartboot/smart-mqtt) +- 官方文档:[https://smartboot.tech/smart-mqtt](https://smartboot.tech/smart-mqtt) -## 参考资料 -1. 《MQTT协议3.1.1中文版》 -2. [moquette](https://github.com/moquette-io/moquette) \ No newline at end of file +## 开源协议 +本项目采用 AGPL-3.0 开源协议。企业用户在未获得特别许可的情况下,需遵循 AGPL-3.0 协议合理合法使用本项目。 \ No newline at end of file