10年Java研发经验,主导千万级设备接入的物联网平台架构设计与优化(日均处理10万+设备交互,稳定性99.9%)。深耕 物联网领域,擅长通过技术驱动业务创新。 对物联网通信协议感兴趣。 核心技术能力
● 物联网开发: ○ 协议与平台:精通MQTT协议与物模型设计,熟悉Emqx、阿里云IoT等平台。 ○ 安全方案:基于一机一密认证、SHA256/AES加密算法,保障物联网通信安全。
● 企业级开发: ○ 后端框架:Spring系列、gRPC、Dubbo、MyBatis/JPA、Netty; ○ 中间件:Redis、RocketMQ; ○ 云原生:Docker、Kubernetes(K8S)、Jenkins; ○ 数据库:MySql、MongoDB、InfluxDB。
● 全栈实践: ○ 前端:Node.js、jQuery、HTML5/CSS3; ○ 生态集成:支付宝生活缴费/服务窗开发经验。
1.设备管理 通过MQTT协议上做设备端和Iot平台的交互。采用MongoDB实现数据持久化,对设备配置、设备在线离线等运行周期中的 状态实时记录,确保数据的稳定存储与高效读取。
2.智能灯组 负责接收用户app提交的灯组配置信息,依据设备属性及相关规则,确定每个灯和开关的下发参数。通过物模型下发配置命 令至智能开关和智能灯,实时监控开关与灯的状态反馈,精准识别并处理配置过程中的各类问题,如灯组数量超出限制、命 令下发失败等,保障智能灯组的顺利配置与运行。
3.智能照明功能 ● 动态调光:运用JavaScript脚本语言解析产品经理提供的 Excel 表格数据,并将其转换为 JSON 格式,以便 Java 代码识别 和处理,从而实现不同类型灯与多种灯光模式的精准匹配。 定时任务:在微服务架构(K8S)下,针对多个容器可能同时执 行定时任务的问题,采用 Redisson支持分布式锁的定时任务 方式,确保每个定时任务仅执行一次。为应对并发场景,使用 RocketMQ 进行消息解耦,然后将 task ID 存储至 Redis,高 效实现了设备定时任务的创建与控制。在任务创建方面,充分 考虑多种场景,包括普通定时(在某一时刻打开)和时间段定 时(在设定时间段内打开并在结束后关闭),并制定了相应规 则以避免设备出现既打开又关闭等冲突情况。任务下发时,由 Redisson 框架引擎按照规则执行,保障智能照明功能在高并 发情况下的稳定运行。
● 数据分析与可视化:在数据分析与可视化部分,使用 InfluxDB 高效存储设备开关状态数据及相关操作信息。该数据库具 备诸多优势,比如能快速处理大量数据,查询便捷,还通过设置数据有效期有效节省了磁盘空间。最终数据通过 APP 展示 给用户,为用户提供直观的数据呈现。
4.设计模式 ● 策略模式:策略模式用于将不同类型的设备统一接入系统,简化设备接入的过程,提供统一的接口。例如,在项目中存在 多种品牌和型号的传感器设备,它们原本的接入方式各不相同,通过策略模式,为每种设备定义对应的策略类,实现了统一 的接入接口。无论接入哪种设备,系统都能以一致的方式进行处理,大大降低了设备接入的复杂性。
● 观察者模式:观察者模式用于实现设备状态的观察和通知机制,当设备状态发生变化时,通知相关观察者进行相应操作。 比如在设备监控场景中,某个关键设备的温度传感器检测到温度超出阈值,作为观察者的报警系统就会立即收到通知,并自 动触发发送报警短信给相关管理人员的操作
● 模板模式:模板模式将灯和开关互相绑定的操作封装成模板类,以便灵活地进行设备控制和灯组的成组操作。比如在智能 照明系统中,每个房间的灯和对应的开关绑定操作都遵循模板模式。当需要对某个灯组进行统一控制,如关闭整个客厅的灯 时,只需调用模板类中预设的操作方法,就能快速实现,提高了设备控制的效率和灵活性。
5. Iot数据安全对接与解密 负责 IoT 云平台 Java 开发,使用一机一密技术,基于设备端烧录的 productKey、deviceName、deviceSecret 等信息, 在云平台实现与设备端的数据对接。运用 deviceSecret 生成Sha256密钥,结合 AES 算法完成数据解密,为 IoT 系统提供 安全保障。 第三方产品如摄像头则基于token完成数据安全对接。
业绩:
在多次项目中,运用合适的设计模式实现产品需求,完成智能照明核心功能,包括包括多品类智能灯组的成组及设备接入。 技术层面应用了 Redis、RocketMQ、gRPC、MQTT、MongoDB、influxDB 等,有效提高了系统性能,并且降低了成本。 在数据存储方面,选用 InfluxDB 替代 MongoDB,有效解决了 MongoDB 磁盘空间随时间不断增长的问题。InfluxDB 可按 设定时间自动删除数据,节省了大量磁盘空间,进而降低了存储成本。