项目背景:为 100 + 商业项目、500 万 + 设备提供智能化管控(覆盖 3D/2D模型图/系统图、各种看板/报警、报表、实时刷新等),需解决云边网络波动、单项目1.2 亿条 / 日 IOT 数据高吞吐接入、业务快速适配问题。
核心挑战:断网时控制指令丢失、每秒 2000 + iot数据接入,延迟、新设备接入周期长(原 15 天)。
技术落地:
1.基于Spring Boot 模块化架构(拆分公共协议层 + 云端配置服务 + 边缘执行服务),结合 “MySQL binlog 增量解析 +Kafka 按项目 ID 分片+ 边缘端 MySQL 预存指令”,解决跨项目指令冲突,断网指令执行率 100%;
2.用MQTT 协议接入设备数据,搭配JUC 分级线程池(高优:核心 20 / 最大 50,处理控制指令;低优:核心 10 / 最大 30,处理监控数据),结合Redis 存实时点位,支撑每秒 2000 条数据接入和向前端推送显示(丢失率 0.01%,延迟 < 500ms);
3.用aop的环形通知切面 + 配置spel表达式 实现统一指令控制业务日志的接入,新日志接入无需开发业务配置好就行.
4.使用数据动(变化 IOT 数据)+静(设备实例数据)分离.加静态数据 通过redis做热刷新,大大降低页面延迟
5.使用DDD,抽象配置领域为聚合根,通过值对象(配置类型、生效范围、校验规则)封装业务约束,确保配置创建 / 更新符合规则;
通过封装配置校验、生效逻辑,配置获取(按业务类型多策略实现);支持多租户、多维度生效范围(全局/空间/建筑的)实现业务配置统一化,提升开发效率;
6.通过Hutool 工具类解析 Excel 配置,结合 Java策略模式动态匹配设备类型,新设备接入周期从 15 天缩至 2 天,开发成本降 70%。
业务价值:客户运维效率提升 60%,年能耗成本降低 40%,系统可用性 99.9%。