**工业物联网数据采集平台**
**项目描述:**
该项目面向工厂 PLC、传感器、仪表等工业设备,提供设备接入、点位配置、定时采集、数据转发、告警监控和后台管理能力。系统采用双 Spring Boot 应用架构,分为 `CollectorCore` 采集引擎和 `iot-console` 管理控制台,支持 Modbus TCP、OPC UA、Siemens S7 等工业协议接入,并可将采集数据转发至 TDengine、InfluxDB、RabbitMQ、MQTT、REST API 等下游系统。
**技术栈:**
Spring Boot、MyBatis / MyBatis Plus、MySQL、Redis、Quartz、Netty、Apache PLC4X、Eclipse Milo、RabbitMQ、MQTT、TDengine、InfluxDB、Caffeine、SQLite、Vue
**个人职责:**
1. 参与工业数采平台后端架构设计,将系统拆分为管理控制台和采集引擎两个独立模块,实现设备管理、点位配置、采集任务和采集执行的职责隔离。
2. 参与 CollectorCore 采集引擎开发,设计基于 Runtime 的运行态管理机制,实现设备连接复用、任务状态管理、采集上下文缓存和配置热更新,降低高频采集场景下的连接开销。
3. 负责工业协议接入与扩展能力建设,支持 Modbus TCP、OPC UA、S7 等协议的数据采集,并通过协议驱动接口和插件化加载机制提升新协议接入效率。
4. 参与采集任务调度设计,基于 Quartz 实现秒级定时采集,并结合 Redis 心跳、任务归属判断和分布式租约机制,支持多节点部署下的任务分片和故障迁移。
5. 优化点位批量读取能力,针对 Modbus、S7 等协议按功能码、地址连续性、DB 块等规则进行点位分组,减少设备通信次数,提升大批量点位采集效率。
6. 参与数据转发模块开发,支持将采集数据转发到时序数据库、消息队列、MQTT、REST 接口和控制台,并实现失败重试、本地缓冲和转发日志记录。
7. 参与背压与熔断机制建设,通过优先级队列、降采样、同步直发、丢弃等策略,保障下游异常或流量突增时系统稳定运行。
8. 参与告警、规则引擎、设备在线状态、运行态监控等模块开发,提供采集成功率、任务耗时、队列堆积、设备连接状态等运行指标,便于现场运维排查。
**项目亮点:**
1. 采用“管理控制台 + 采集引擎”双模块架构,实现业务配置和工业采集能力解耦,便于独立部署、扩容和故障隔离。
2. 采集引擎采用 Runtime 状态驱动模型,复用设备长连接并缓存任务上下文,提升高频采集稳定性和执行效率。
3. 支持 Redis 分布式协调,通过心跳、任务分片和租约机制避免多节点重复采集,具备一定高可用能力。
4. 通过点位分组和批量读优化,将连续地址合并为少量批量请求,显著减少 PLC 通信次数。
5. 数据转发链路支持多目标、多协议和失败重试,适配工业现场对实时上报、历史存储和第三方平台对接的需求。
6. 引入背压保护和熔断策略,在下游系统异常时优先保障核心数据,降低数据堆积导致服务不可用的风险。
项目名称:基于微服务架构的森林火势蔓延模拟与应急指挥平台
项目背景: 该项目是为林业防火部门打造的一套集火情监测、火势蔓延推演、应急指挥调度于一体的综合管理平台,旨在通过数字化手段提升森林火灾的预警、研判与处置效率。
技术架构: 采用 Spring Boot + Spring Cloud 微服务体系,集成 Nacos 服务注册与配置中心、Dubbo 远程调用、OAuth2 + SpringSecurity 统一鉴权、PostgreSQL + MyBatis-Plus 数据持久化、Redis 缓存、Kafka 消息队列、MQTT 物联网协议、WebSocket、实时通信、XXL-Job 分布式任务调度、Docker 容器化部署等技术栈,网关层基于 ht-gateway 统一路由与鉴权。
核心功能与个人贡献:
1. 火势蔓延模拟算法: 设计并实现了基于元胞自动机的火势动态蔓延推演算法。综合考虑风速、风向、温度、湿度、可燃物类型等多维环境因子,构建八方向邻居蔓延模型,结合风向角度计算顺风方向概率加权,实时生成分阶段热力图数据(每50秒一个阶段快照),支持地理坐标与网格坐标的精确转换,为防火指挥决策提供科学依据。
2. 实战推演与实时数据推送: 基于 SSE(Server-Sent Events)技术实现推演过程实时数据订阅,采用异步线程池执行地形矩阵模