名词/术语
| 解释
|
MQTT Broker
| MQTT Broker 是消息中间件,它负责接收发布者发送的消息,并根据订阅者订阅的主题将消息转发给订阅者。它管理客户端连接、处理订阅和退订,并保证按照指定的服务质量(QoS)级别发送消息。MQTT 是一种开放的轻量级机器对机器协议,专为物联网交互设计。在 MQTT 网络中,MQTT Broker 是协调所有 MQTT 代理之间的交互的服务器。MQTT 客户端可以是发布者,也可以是订阅者,或者两者都是。MQTT 架构可以是集中式的,也可以是分布式的,以适应不同的应用场景。 |
Bridge | Bridge在MQTT协议中是指桥接,是指将两个MQTT代理(Broker)连接起来,使得它们可以相互通信,以实现消息的互通。当两个Broker被桥接后,它们可以作为接入节点提供服务,对外可配置一个虚拟IP或域名来访问。这种桥接方式可以实现负载均衡和故障转移,提高系统的可用性和稳定性。在配置Bridge时,需要指定消息同步的Topic,而不是同步所有Topic来规避流量放大的问题,更推荐通过垂直切分的方案进行分流。MQTT协议中的Bridge主要有以下特点:- 可以实现两个MQTT代理之间的消息互通,保证消息的可靠性和稳定性。
- 可以配置虚拟IP或域名来访问,提高系统的可用性和可维护性。
- 可以实现负载均衡和故障转移,提高系统的可用性和稳定性。
- 可以指定消息同步的Topic,避免流量放大的问题。
- 更推荐通过垂直切分的方案进行分流,以进一步提高系统的可用性和稳定性。
|
MQTT Client | MQTT Client 是指运行MQTT库并通过网络连接到MQTT broker的设备,这些设备可以是微控制器,也可以是成熟的服务器,它实现了MQTT协议的客户端。在MQTT协议中,一个典型的客户端会有以下主要操作:发布消息到某个topic、从某个topic订阅消息、处理接收到的消息、对接收到的QoS 1或QoS 2消息进行确认。MQTT协议的客户端实现非常简单直接。 |
RSMB | RSMB(Very Small Message Broker)是IBM开发的一个轻量级消息代理,主要用于MQTT协议的C/S(客户端/服务器)架构中的消息传输服务。之后,Eclipse Foundation将RSMB接纳为其下的一个项目,并将其命名为Eclipse Mosquitto。Eclipse Mosquitto是一个开源的消息代理,它实现了MQTT协议的版本3.1和3.1.1,被设计用于从低功耗的单板计算机到完整的服务器等各种设备。MQTT协议使用发布/订阅模型进行消息传递,这种模型被证明在许多场景下,特别是物联网(IoT)应用中,都非常有效。 |
LWT | Last Will and Testament (LWT) 是 MQTT 协议中用于处理非正常断开连接时的一种机制。LWT 可以被理解为在连接到 MQTT Broker 时提到的遗嘱。当 Broker 检测到 Client 非正常地断开连接的时候,就会向遗嘱主题里面发布一条消息。遗嘱相关的设置是在建立连接的时候,在 CONNECT 数据包里面的 Variable header (可变头与) Payload (有效载荷) 中指定的。 |
M2M | 机器对机器Machine to machine (M2M)是指数据从一台终端传送到另一台终端,也就是机器与机器的对话。M2M应用系统构成有智能化机器、M2M硬件、通信网络、中间件。M2M应用领域有家庭应用领域、工业应用领域、零售和支付领域、物流运输行业、医疗行业等。 |
IoT | 物联网(Internet of Things,IoT)是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。物联网是一个基于互联网、传统电信网等的信息承载体,它让所有能够被独立寻址的普通物理对象形成互联互通的网络。 |
QoS | MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)中设计了保证消息稳定传输的机制,包括消息应答、存储和重传。在此机制下,提供了三种不同层次的服务质量(Quality of Service,QoS)等级:- QoS0,即至多一次(At most once)。这种等级下,发送方(Sender)会尽力向接收方(Receiver)发送消息,但消息的传递流程只包括一次。如果发送失败,则不会重试。这种QoS等级适用于对消息传递可靠性要求不高,但对响应速度要求较高的场景。
- QoS1,即至少一次(At least once)。这种等级下,发送方会确保消息至少被传递一次到接收方。在某些情况下,消息可能会被多次传递。接收方可以通过消息ID或其他标识符来判断是否已经接收过某个消息,从而处理重复接收的情况。这种QoS等级适用于需要确保消息被至少传递一次的场景,但允许消息的重复传递。
- QoS2,即确保只有一次(Exactly once)。这种等级下,发送方会确保每个消息只被传递一次到接收方。在某些情况下,消息可能会被延迟传递。接收方可以依赖某种机制(如数据库事务)来确保某个消息的处理不会重复。这种QoS等级适用于需要确保每个消息只被传递一次的场景,并且对消息的延迟传递有一定的容忍度。
不同的QoS等级为MQTT的应用提供了不同的选择和灵活性,可以根据实际需求和网络环境来选择最合适的QoS等级。需要注意的是,QoS是Sender和Receiver之间的协议,而不是Publisher和Subscriber之间的协议。 |