# zhitan-gateway **Repository Path**: zeron2022/zhitan-gateway ## Basic Information - **Project Name**: zhitan-gateway - **Description**: 能源项目数据采集代码,自带一个mqtt案例,能帮助新手跑起来 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 23 - **Created**: 2025-08-11 - **Last Updated**: 2025-08-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Zhitan-Gateway 项目简介 Zhitan-Gateway 是一个基于 Java 的网关服务,主要功能是接收 MQTT 协议的数据,并将这些数据写入时间序列数据库 InfluxDB 或关系型数据库中。该项目适用于物联网(IoT)场景下的数据采集和处理。 ## 技术栈 - Spring Boot - MQTT - InfluxDB - MyBatis Plus - Redis - Druid 数据库连接池 ## 主要功能 - 通过 MQTT 协议接收数据并进行处理。 - 支持将数据写入 InfluxDB 或其他数据库。 - 配置 Druid 数据库连接池以管理主从数据库连接。 - 提供 Redis 缓存服务以提升数据处理效率。 ## 模块说明 - `MQTTGatewayApplication.java`:Spring Boot 启动类。 - `MqttConfig.java` 和 `MqttInboundConfig.java`:负责 MQTT 的连接和消息接收配置。 - `InfluxdbConfig.java` 和 `InfluxdbRepository.java`:负责 InfluxDB 的连接和数据写入。 - `DataServiceImpl.java`:实现数据处理逻辑,包括接收 MQTT 消息并写入数据库。 - `DruidConfig.java` 和 `DruidProperties.java`:配置 Druid 数据库连接池。 - `RedisConfig.java` 和 `RedisCache.java`:配置 Redis 缓存并提供缓存操作方法。 - `MyBatisPlusConfig.java`:配置 MyBatis Plus 的拦截器。 ## 使用说明 ### 配置 确保在 `application.yml` 或 `application-dev.yml` 中配置以下内容: - MQTT 服务器连接信息(broker-url, username, password) - InfluxDB 连接参数(host, org, bucket, token) - Redis 配置信息 - Druid 数据源配置 ### 启动 运行 `MQTTGatewayApplication.java` 中的 `main` 方法启动服务。 ### 数据处理 当 MQTT 消息到达时,`MqttInboundConfig` 会监听指定的 Topic,并通过 `MqttMessageHandler` 处理数据。数据将根据配置写入 InfluxDB 或其他数据库。 ## 依赖管理 使用 Maven 进行依赖管理,核心依赖包括: - Spring Boot Starter - MQTT 支持库 - InfluxDB Java 客户端 - MyBatis Plus - Druid 数据库连接池 - Redis 客户端 ## 许可证 本项目遵循 MIT 许可证,详见 [LICENSE](LICENSE) 文件。 ## 注意事项 - 本项目需要依赖 MQTT Broker 和 InfluxDB/MySQL 等数据库,请确保相关服务已启动。 - 配置文件中需根据实际环境修改配置,特别是数据库和 MQTT 的连接参数。 如需进一步了解,请查阅源码或联系项目维护者。