MQTT 核心概念

简介: MQTT 核心概念

MQTT通过以下方式进行数据交互。


客户端Publisher发送一条消息message给MQTT Broker,发送消息时需要关联一个topic和QoS(Quality of Service)。topic指定了消息要发送给哪个主题,QoS指定了消息可靠性等级(这个在后边会讲到)。假设当前消息发给主题topic1,并且有两个客户端Subscriber分别订阅了topic1。MQTT Broker收到消息后,发现消息是发送给topic1的,于是将这份消息分别转发给它的两个订阅者。


MQTT的核心概念包括:


Broker,又称Server,是MQTT的服务端,负责与客户端建立连接,接收并转发消息,接收订阅和取消订阅请求等。


Client,使用MQTT协议的程序或设备,负责与Broker建立连接,发送或者接收数据,订阅主题或取消订阅。


Message,在MQTT协议中传输的数据,当消息被传输时,通常和一个主题名称(topic name)以及一个QoS(服务质量)关联起来。


Topic,主题有两层含义,在发布消息时,主题会和消息关联起来,告诉Broker这条消息要发给哪个主题。在订阅消息时,客户端需要告诉Broker自己对哪个主题感兴趣,一旦有消息发给这个主题,Broker会将消息发给主题的订阅者。主题支持统配符,对于使用通配符的主题,我们成为Topic Filter。


Publish,客户端发送消息给Broker的过程。发送消息时需要指定topic和QoS。Broker会将消息转发给订阅了该topic的其它客户端。


Subscribe,客户端订阅主题的过程。客户端告诉Broker,自己对某个topic感兴趣,当有其它客户端发送消息给这个topic时,Broker会转发该消息给自己。客户端可以取消订阅,这个过程称作Unsubscribe,取消订阅后,Broker不会再转发消息给当前客户端。


QoS,Quality of Service。消息可靠性传递的参数,有3个值,分别是:

  • 0,消息只发送一次,不保证发送成功。
  • 1,消息最少发送一次,保证发送成功。因为可能发送多次,因此接收方可能收到重复消息。
  • 2,消息只发送一次,保证成功。接收方不会接到重复消息。


发送消息时,可以指定QoS,如果QoS>0,那么消息一定会发到Broker。订阅主题时,也可以指定QoS,如果QoS>0,那么Broker一定会将消息发给订阅者,不会丢失。这里要要注意,消息从发布者到订阅者,是分两步走的,第一步有发布者发布到MQTT Broker,第二步是MQTT Broker转发消息到订阅者。所以只有当发布消息时,指定QoS>0,并且订阅主题时,QoS>0,消息才能可靠的从发布客户端发送到订阅客户端端。

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
消息中间件 微服务
MQTT X连接阿里云微服务消息队列MQTT
MQTT X 是 EMQ 开源的一款优雅的跨平台 MQTT 5.0 桌面客户端,它支持 macOS, Linux, Windows。MQTT X 的 UI 采用了聊天界面形式,简化了页面操作逻辑,用户可以快速创建连接,允许保存多个客户端,方便用户快速测试 MQTT/MQTTS 连接,及 MQTT 消息的订阅和发布。本文演示如何使用该工具快速连接阿里云微服务消息队列MQTT,并进行消息的发布和订阅测试。
3435 0
MQTT X连接阿里云微服务消息队列MQTT
|
1天前
|
网络性能优化 Windows
|
1天前
|
消息中间件 传感器 网络协议
阿里云MQTT简介和使用流程
以下是内容的摘要: 该文主要介绍了在阿里云上搭建 MQTT 服务器的步骤。首先,需要注册阿里云账号并进行实名认证。然后,购买阿里云 MQTT 实例,选择合适的类型、地域、连接和消息限制。接着,创建产品和设备,命名并上线,获取 MQTT 连接的相关信息,包括 ProductKey、DeviceName 和 DeviceSecret。通过提供的 MQTT.fx 工具,设置 MQTT 客户端连接参数,包括 Broker 地址、端口、用户名和密码。最后,使用 MQTT.fx 测试连接,实现数据的上报和接收,验证 MQTT 服务器的配置是否成功。
|
1天前
|
监控 安全 物联网
阿里云mqtt简介和使用流程
本文介绍了阿里云MQTT的准备工作、简介和使用流程。首先,用户需要注册阿里云账号并完成实名认证。接着,通过阿里云物联网平台创建产品和设备,获取连接所需的Broker Address、Port、Username和Password。然后,使用MQTT客户端(如MQTTX)配置这些信息进行连接,并激活设备。最后,创建并订阅/发布自定义Topic,实现设备间的通信。阿里云MQTT是一个适用于物联网设备的轻量级通信协议,提供高并发、高可靠性的服务,广泛应用于各种物联网场景。
阿里云mqtt简介和使用流程
|
1天前
|
消息中间件 安全 Java
一文读懂RabbitMQ核心概念及架构
一文读懂RabbitMQ核心概念及架构
|
7月前
|
网络协议 物联网 开发者
详细介绍 MQTT 的工作原理,包括 MQTT 协议的特点、核心概念以及消息传递的流程
详细介绍 MQTT 的工作原理,包括 MQTT 协议的特点、核心概念以及消息传递的流程
1112 1
|
6月前
|
消息中间件 网络协议 物联网
Golang微服务框架Kratos应用MQTT消息队列
MQTT 协议 是由`IBM`的`Andy Stanford-Clark博士`和`Arcom`(已更名为Eurotech)的`Arlen Nipper博士`于 1999 年发明,用于石油和天然气行业。工程师需要一种协议来实现最小带宽和最小电池损耗,以通过卫星监控石油管道。最初,该协议被称为消息队列遥测传输,得名于首先支持其初始阶段的 IBM 产品 MQ 系列。2010 年,IBM 发布了 MQTT 3.1 作为任何人都可以实施的免费开放协议,然后于 2013 年将其提交给结构化信息标准促进组织 (OASIS) 规范机构进行维护。2019 年,OASIS 发布了升级的 MQTT 版本 5。
51 0
|
6月前
|
传感器 网络协议 物联网
03 MQTT原理
03 MQTT原理
41 0
|
6月前
|
传感器 负载均衡 网络协议
01 MQTT简介
01 MQTT简介
44 0