智能插座系统 - IoT电力管理平台
基于 Spring Boot 3 和 Java 21 LTS 开发的 IoT 智能插座管理系统,覆盖电力设备接入、用电数据采集、远程控制、权限管控、告警计费全业务链路。
项目背景
智能插座系统是一款面向宿舍/办公场景的 IoT 电力管理平台,旨在实现智能用电管理、远程控制、告警通知、计费统计等功能。项目需要支持千级设备并发接入、实时数据采集、高并发数据处理,同时保证系统的安全性和稳定性。作为后端开发工程师,我负责从架构设计到核心功能实现的全流程开发工作。
技术架构
项目采用支持水平扩展的分层架构,后端基于 Spring Boot 3 和 Java 21 LTS,使用 Spring Security + JWT + RBAC 实现分布式无状态鉴权,MQTT 协议处理 IoT 设备通信,Redis 实现分布式令牌黑名单和多级缓存,RabbitMQ 处理异步消息削峰,PostgreSQL 持久化存储业务数据。
核心功能
IoT设备接入:支持千级电力设备并发接入与数据上报,基于 MQTT 协议
用电数据采集:实时采集设备用电数据,支持数据存储和统计分析
远程控制:支持设备远程开关、定时任务、用电策略配置
权限管控:分布式 JWT 无状态鉴权 + RBAC 细粒度权限模型
告警通知:设备异常告警、用电超限告警,支持多渠道通知
计费统计:用电账单自动生成,支持多种计费策略
统一限流:Guava 令牌桶单机兜底 + Redis+Lua 分布式滑动窗口限流
审计日志:基于 AOP 切面实现统一审计日志和全局异常治理
技术栈
工作职责
- 1
设计并实现支持水平扩展的分层架构,覆盖 IoT 全业务链路
- 2
落地分布式 JWT 无状态鉴权 + RBAC 细粒度权限模型
- 3
Redis 实现原子性 SETNX+EX 的分布式令牌黑名单
- 4
PBKDF2 加盐哈希加密 + 恒定时间比对防时序攻击
- 5
基于 AOP 切面实现统一限流、审计日志、全局异常治理
- 6
Redis 多级缓存优化数据层性能,接口响应耗时压缩至 50ms 以内
- 7
RabbitMQ 实现三大核心异步链路,系统吞吐提升 5 倍
- 8
Java 21 虚拟线程优化 IoT 高并发场景
技术难点与解决方案
IoT 高并发设备接入
落地 Java 21 虚拟线程优化 IoT 高并发场景,支撑千级设备并发接入与数据上报,大幅提升系统吞吐能力
分布式鉴权与权限控制
Redis 实现原子性 SETNX+EX 的分布式令牌黑名单,替代本地 Map 支持多实例部署;PBKDF2 加盐哈希加密 + 恒定时间比对防时序攻击
数据层性能优化
Redis 多级缓存(L1 本地 Caffeine + L2 分布式 Redis)缓存热点设备/用电数据;JPA 批量操作、联合索引优化、流式分页降低数据库 IO,接口平均响应耗时压缩至 50ms 以内
异步削峰填谷
RabbitMQ 实现设备遥测数据异步落库、告警消息异步推送、用电账单异步生成三大核心异步链路,削平 IoT 设备批量上报的流量峰值,系统吞吐提升 5 倍
统一限流与异常治理
基于 AOP 切面实现统一限流、审计日志、全局异常治理:Guava 令牌桶算法做单机兜底,Redis+Lua 脚本实现分布式滑动窗口限流,峰值 QPS 承载提升 300%
项目成果
支撑千级 IoT 设备并发接入与数据上报
接口平均响应耗时压缩至 50ms 以内
系统吞吐提升 5 倍,峰值 QPS 承载提升 300%
全国大学生物联网设计竞赛东部赛区一等奖(A类赛事)