(一)MQTT是机器对机器(M2M)/物联网(IoT)连接协议
它被设计为一个极其轻量级的发布/订阅消息传输协议。对于需要较小代码占用空间和/或网络带宽非常宝贵的远程连接非常有用,是专为受限设备和低带宽、高延迟或不可靠的网络而设计。该协议基于发布/订阅模式(Publish/Subscribe Pattern),支持多种质量等级(Quality of Service, QoS),可以实现可靠的消息传输和传输后的可靠存储。在MQTT中,发布/订阅模式的实现包括以下几个核心概念:
1. 主题(Topic):
主题是MQTT中消息的标识符,用于指定消息的内容和接收者。主题由一个或多个主题等级(Topic Level)组成。
2. 客户端(Client):
MQTT中的客户端是指连接到MQTT代理服务器的设备或应用程序,它可以是发布者或订阅者。
3. 代理服务器(Broker):
MQTT中的代理服务器是指负责接受、路由和转发消息的中间件。代理服务器会维护一个或多个主题,客户端可以向代理服务器发布消息或订阅主题。
4. 发布者(Publisher):
MQTT的发布者是指发布消息的客户端。发布者将消息发送到代理服务器,代理服务器会根据消息的主题将其路由到订阅了相应主题的订阅者。
5. 订阅者(Subscriber):
MQTT中的订阅者是指订阅主题的客户端。订阅者向代理服务器订阅特定主题,代理服务器会将订阅者的主题和相关信息保存在订阅列表中。当有新消息发布到订阅者订阅的主题时,代理服务器会将消息发送给订阅者。
在MQTT的发布/订阅模式中,发布者和订阅者之间是解耦的,他们不需要知道对方的存在和身份,只知道相应的主题即可。
图1:MQTT功能架构
(二)规则引擎是一种嵌入在其他应用程序中的程序组件
能够将业务决策从应用程序代码中分离。业务人员可以使用预定义的规则语义模块编写业务规则。规则引擎解析业务规则,接受数据输入,并根据业务规则做出业务决策。通过编写业务规则,就可以改变数据的处理逻辑,而不需要重新编写应用程序的代码。基于 MQTT 的规则引擎允许用户在物联网平台中定义和执行基于 MQTT 消息的规则。它使用 MQTT 主题(Topic)作为规则的触发器,并根据预定义的条件和逻辑,对接收到的消息进行处理和决策。
规则引擎通常由以下几个组件构成:
1. 规则定义:
如图2,用户可以定义和配置规则,包括规则的触发条件、处理逻辑和动作。规则的触发通常是基于MQTT主题的发布或订阅。
图2:规则定义组成图
2. 规则匹配:
如图 3 ,当接收到一个 MQTT 消息时,规则引擎会将其与已定义的规则进行匹配,以确定触发了哪些规则。
图3:配置流程图
3.规则执行:
一旦触发了特定的规则,规则引擎将执行该规则定义的处理逻辑和动作。这可能涉及到对消息进行过滤、转换、聚合、存储或发送。
4.动态更新:
基于 MQTT 的规则引擎通常支持动态更新规则,即在运行时修改和添加规则而无需停止和重新启动引擎。这种灵活性和实时性使得规则引擎能够适应动态变化的物联网环境。
基于 MQTT 的规则引擎可以广泛应用于物联网平台中的数据处理、事件触发、自动化控制等场景,能够实现实时、可靠的消息传输和智能化的规则处理,提供高效的物联网应用服务。
基于MQTT的分布式规则引擎关键技术
(一)MQTT跨域集群
MQTT 跨域集群(MQTT Geo-Distribution)是一个创新架构,允许部署在不同地区或云上的 MQTT Broker 作为一个单集群一起工作。通过跨域集群,MQTT 消息可以在不同地区的 MQTT Broker 之间自动同步和传输。
有两种方法可以实现 MQTT 跨域集群:
- 单集群,多地区:单个 MQTT 集群,每个节点在不同地区运行。
- 多集群,多云:分布在不同云中的多个 MQTT 集群连接在一起。
将这两种方法结合,在跨区域部署的 MQTT Broker 之间创建一个可靠的物联网数据基础设施。通过 MQTT 跨域集群,企业可以建立一个跨多云的全球 MQTT 接入网络。不管所处的物理位置在哪里,设备和应用都能从最近的节点接入实现相互通信。
(二)分布式计算
分布式计算是将任务分解并分配到多个计算节点上进行并行处理的技术,可以实现高可用性。当某个节点故障或不可用时,其他节点可以接管任务,保证系统的连续性和稳定性。
分布式规则引擎可以自动判断和优化规则的执行位置,因此数据流可以被分发到多个处理节点上,并行地执行规则,实现更低延迟、高吞吐量的规则处理、以及负载均衡。这样可以充分利用资源,避免单个节点负载过重,提高系统的整体性能和效率,还可以根据业务需求灵活地增加或减少计算节点,使得系统可以根据实际情况动态调整,满足业务弹性变化的需求。
(三)MQTT Streams
MQTT Streams 是 MQTT 协议的一项扩展能力,能够在 MQTT Broker 内实时处理海量、高频的数据流。这在发布订阅模式消息传输的基础上进一步增强了传统 MQTT Broker 的能力。通过 MQTT Streams,客户端可以像 Apache Kafka 一样将 MQTT 消息以流的形式进行生产和消费,从而实现历史消息回放。这对事件驱动的处理尤为重要,可以确保最终的数据一致性、可审计和合规性。
流处理对于从物联网设备产生的大量数据中实时挖掘商业价值至关重要。以前,这一过程通过一个过时且复杂的大数据堆栈实现,需要 MQTT Broker 与 Kafka、Hadoop、Flink 或 Spark 进行集成。而通过内置的流处理,MQTT Streams 简化了物联网数据处理架构,提高了数据处理效率和响应时间,并为物联网提供了一个统一的消息传递和流处理平台。通过消息去重、消息重放和消息过期等功能,MQTT Streams 实现了高吞吐量、低时延和容错,使其成为基于 MQTT 的物联网应用中实时数据流处理的强大工具。
(四)MQTT Serverless
云计算中 Serverless 模式的兴起标志着应用的设计、开发、部署和运行方式发生了突破性的范式转变。这种模式下开发者将能够专注于应用的业务逻辑,无需管理基础设施,从而提高敏捷性、可扩展性和成本效益。
传统的物联网应用需要数分钟甚至数小时才能在云上或在企业私有环境中部署 MQTT 消息服务,相比之下,Serverless MQTT 只需点击几下就能快速完成 MQTT 服务的部署。除了极快的部署速度,Serverless MQTT 更大的价值在于其无可比拟的灵活性:根据用户需求对资源进行无缝扩展。Serverless MQTT 有望推动 MQTT 更广泛的应用,降低运营成本,激发不同行业的创新协作。
协同计算与联邦学习
基于MQTT的分布式规则引擎可以实现实时的消息传输和处理,结合协同计算和联邦学习,可以在分布式系统中进行实时的模型更新和预测,从而实现实时的智能决策能力;此外,还可以将多个边缘设备的计算和模型合并起来,共同完成数据处理和分析任务,共同推断并制定智能决策,从而使得分布式系统能够更好地适应不同设备上的个性化需求,并进行更准确的决策。
将联邦学习与基于MQTT的分布式规则引擎结合,可以实现更高的数据隐私保护、分布式智能决策、高效的资源利用和实时决策能力,提升系统的数据协同效果和和用户体验。
技术价值
基于物联网场景的分布式规则引擎具有以下技术价值:
1. 实时性:
可以实时处理物联网中生成的大量数据,对数据进行实时的分析、决策和反应,能够为物联网应用提供更高的响应性和效率。
2. 大规模数据处理:
通过将计算任务分布到多个节点上,并行计算能力使得数据处理速度更快,帮助企业处理和分析大规模实时数据,并根据预定义的规则执行相应的决策和操作。这对于需要对实时数据进行智能分析和决策的行业,如智能城市、智能工厂、物流和供应链管理等,具有重要意义。
3. 灵活性和可扩展性:
具备灵活性和可扩展性,可以根据不同的应用场景以及系统规模和需求的增长,进行水平扩展并动态地配置和调整规则。同时,通过增加或减少节点,使系统具备良好的可扩展性,能够适应不同规模的物联网部署。
4. 自动化决策:
能够根据设定的规则和条件,自动化地进行决策和执行,可以根据物联网中的数据进行实时分析,根据设定的规则作出相应决策并执行操作,为物联网应用提供智能化的自动化决策能力。这对于需要快速响应和自动化决策的行业,如交通、电力、医疗等,具有重要意义。
回复