在物联网 (IoT) 解决方案中,IoT 设备将事件(通知、确认、遥测)发送至应用程序,以获得见解。 应用程序可能需要特定的事件子集在不同的终结点进行处理或存储。 这些事件可能还需要路由到不同的服务,以进一步处理。 随着 IoT 解决方案的横向扩展,设备数量、事件量、事件多样性以及不同的服务也会有变化。 要满足此模式的需求,有必要通过灵活、可缩放、一致且可靠的方法来路由事件。
可能的用例
一家零售商店正在监视其冷冻食品区的冰箱:
- 当的温度超过预先确定的阈值时,将发送警报。 可以使用阈值规则创建传递规则,以将这些特定事件发送到警报系统。
- 数据科学团队正在构建一个异常情况检测模型,从而在任何一台冰箱发生故障之前确定其问题。 消息传递规则可以将所有原始遥测数据发送到专门供数据科学团队用于定型与建模的存储帐户。
此方案适用于零售、能源和环境行业。
体系结构
下载此体系结构的 Visio 文件。
在 IoT 平台中,可以创建用于精细路由事件的规则。 可以在 IoT 平台配置一个或多个规则。 这些规则将应用于入口事件,并路由到特定终结点。
特征
下面是使用此模式的一些注意事项。
终结点吞吐量:接收事件的终结点必须能够处理通过路由发送的事件的入口。 确保终结点服务能够引入和存储数据,直至其被使用。
事件格式:若要使路由可缩放且灵活,事件应采用通用格式,事件应当具有共同格式,以确保协议之间的互操作性。
事件处理:如果事件与指向同一终结点的多个路由匹配,则只应向该终结点路由一次。 在这种情况下,确保消息顺序也很重要。
事件复制:为了处理消息重复,我们建议在原点(通常是设备或模块)的消息的应用程序属性中标记一个唯一标识符。 使用消息的服务可以使用此标识符来处理重复的消息。
回退路由:不匹配任何规则的事件应会登陆到回退路由中,以便可以适当地处理这些事件,并且不会丢失任何事件。
非遥测事件:IoT 解决方案具有不同类型的事件,例如:设备状态更改和设备生命周期事件。 事件路由应当能够捕获规则并将其应用于此类非遥测事件,以实现自动化和监视。
何时使用此模式:
将设备遥测消息、设备生命周期事件或设备孪生更改事件发送到规则确定的特定终结点。
通过应用特定规则筛选事件。
不建议将此模式用于:
- 基于对时序数据复杂实时数据分析的路由。 例如:比较 15 分钟平均遥测数据时。 如果需要实时数据分析,请对热路径数据使用实时分析服务。