12 mock-device 下篇:网关、跨语言协议适配
本篇讲mock-device的另一半作用 LwM2M 网关,以及一个独立的 C 语言工程 mock-device-modbus。 项目地址:https://github.com/Liyuwen85/iot-alarm-copilot 目录 网关 LwM2M → MQTT 转换层:Lwm2mDeviceSnapshot 是关键 网关下行命令:从 MQTT 转换成 ...
本篇讲mock-device的另一半作用 LwM2M 网关,以及一个独立的 C 语言工程 mock-device-modbus。 项目地址:https://github.com/Liyuwen85/iot-alarm-copilot 目录 网关 LwM2M → MQTT 转换层:Lwm2mDeviceSnapshot 是关键 网关下行命令:从 MQTT 转换成 ...
前几篇讲的全是 backend 这个 Spring Boot 工程,所有 DDD 原则都在 Spring 容器下落地。本篇换个mock-device,纯 Java实现、不依赖 Spring 容器,用 DDD 来做java版的模拟设备、和LwM2M网关。读完本篇,你会看到1. DDD 的核心原则一条都没少,四层、端口、聚合、值对象、依赖倒置,每条都有;2. Spring 替你做的那些事,全都得...
前几篇讲的全是上行链路“设备 → broker → kafka → access → telemetry → rule → alarm → ai → audit”。本篇讲下行“平台怎么把一条指令送到设备、怎么知道设备收到了、收不到怎么办”。下行链路在 IoT 平台里看起来单薄,但失败模式和复杂度比上行要高。 项目地址:https://github.com/Liyuwen85/iot-...
本文主要讲iot-alarm-copilot项目中的审计、日志、可观测性是怎么做的。这三者都是留痕,但受众不同、粒度不同、保留策略也不同,本篇详细展开阐述。 项目地址:https://github.com/Liyuwen85/iot-alarm-copilot 目录 受众不同、粒度不同、保留策略不同 审计:业务事实的留痕 日志:开发者的视角 可观测性:系统...
本文从 ai 上下文里的 AiSummaryTask 聚合出发,讲清楚怎么把 LLM 调用本身做成一个有领域语义的异步任务。 项目地址:https://github.com/Liyuwen85/iot-alarm-copilot 目录 AI 摘要建模成异步任务聚合 claim 模式 + 拆事务:LLM 调用不能放进 DB 事务 Prompt 是领域规则,不是字符...
之前讲过 ProductModel 这种结构保证了聚合内部多个字段的业务一致性。本篇讲另一类聚合状态机驱动的聚合,以 alarm 上下文里的 Alarm 为代表。 项目地址:https://github.com/Liyuwen85/iot-alarm-copilot 目录 Alarm 状态机:三态、四种转移 防重不是去重,是领域不变量 乐观并发:用前置状态当版本...
本文从 rule 上下文的代码出发,把规则系统的几个关键分层讲一遍“规则的生命周期、规则的输入模型等”,重点不在表达式怎么写,在它们之间的边界怎么划。最后还介绍一下生产环境中的规则执行层次。 项目地址:https://github.com/Liyuwen85/iot-alarm-copilot 目录 规则系统常见的认知误区 规则的三个生命周期分层 规则的输入模型...
这篇讲”遥测指标存到哪里、怎么查”,围绕 telemetry 上下文里的两个核心存储抽象TelemetryHotDataPort 和 TelemetrySnapshot,把 IoT 平台的数据分层体系顺着讲一遍:业务库、时序库、数据湖、数仓各自该装什么。 项目地址:https://github.com/Liyuwen85/iot-alarm-copilot 目录 IoT数据...
设备上报的指标有两种:原始指标(设备直接上报的,如温度、湿度)和派生指标(基于原始指标算出来的,如热感指数 heatIndex = temperature + humidity * 0.1)。本文聚焦派生指标,它在 telemetry 上下文中可校验、可演进。 项目地址:https://github.com/Liyuwen85/iot-alarm-copilot 目录 把派...
本文从 device 上下文出发,讲清”产品模型”和”Device”这两个聚合根各自的职责与联系,以及它们怎么通过ThingModel、ThingPropertySource等子模型把内部结构组合在一起。另外,本篇也是实践DDD的核心,阐述了领域对象的划分方法,读者可以参考文中的做法自行尝试。 项目地址:https://github.com/Liyuwen85/iot-alarm-c...