MQTT 服务器基本特点

MQTT (Message Queuing Telemetry Transport) 服务器是一种轻量级的发布/订阅消息传输协议,专为受限环境下的物联网设备而设计。MQTT 服务器具有以下基本特点:

发布/订阅模式

MQTT 服务器支持发布/订阅功能,允许一个发布者向多个订阅者发送消息,实现一对多的消息分发。这种模式非常适合物联网场景,可以有效减少网络流量和设备资源消耗。

消息内容屏蔽

MQTT 服务器在传输消息时,对消息内容完全不可知,只负责将消息从发布者传递到订阅者。这种设计确保了消息内容的私密性和安全性。

基于 TCP/IP 网络

MQTT 服务器通过 TCP/IP 协议与客户端建立网络连接,可以跨越不同网络环境进行通信,适用于各种物联网场景。

可选服务质量等级

MQTT 协议定义了三种服务质量等级,允许客户端根据实际需求选择合适的等级,在可靠性和网络流量之间进行权衡。

Last Will 和 Testament 特性

当客户端异常中断时,MQTT 服务器会使用 Last Will 和 Testament 特性向其他客户端发送通知消息,确保系统的可靠性和可用性。

轻量级和低开销

MQTT 协议设计简单、开销小,非常适合在带宽有限、计算能力较低的物联网设备上运行,满足了物联网场景的需求。

总之,MQTT 服务器凭借其发布/订阅模式、消息内容屏蔽、TCP/IP 网络支持、可选服务质量等级、Last Will 和 Testament 特性以及轻量级设计,成为了物联网领域广泛采用的消息传输协议。


MQTT 服务器主要功能

协议接入

MQTT (Message Queuing Telemetry Transport) 是一种轻量级的发布/订阅消息传输协议,专为物联网应用而设计。MQTT 服务器能够提供完整规范的 MQTT V3.1/V3.1.1 和 V5.0 协议支持,确保与各种 MQTT 客户端的兼容性。除了 MQTT 协议本身,该服务器还支持其他常见的物联网协议接入,例如:

  • MQTT-SN (MQTT for Sensor Networks),是 MQTT 协议的一种变体,专为需要通过低带宽网络连接的传感器网络而设计
  • CoAP (Constrained Application Protocol),一种基于 UDP 的轻量级协议,适用于资源受限的物联网设备
  • lwM2M (Lightweight M2M),一种面向物联网设备的远程管理协议,支持设备引导、固件升级等功能

集群部署

为了提供高可用性和可扩展性,MQTT 服务器采用了多服务器节点集群架构。集群中的多个服务器节点通过协作处理数据内容,具有以下优势:

  • 高可用性: 单个节点发生故障时,其他节点可以继续提供服务,确保系统不中断运行
  • 负载均衡: 客户端连接和消息流量可以在集群节点之间进行动态分配,避免单点过载
  • 较高的整体性能: 多个节点共同处理负载,总体性能高于单节点部署
  • 可扩展性: 可以通过添加更多节点来线性扩展集群的处理能力,满足不断增长的需求

 

接入安全

MQTT 服务器提供了多种安全机制来保护系统和数据的安全性:

  • 加密连接: 支持 SSL/TLS 等加密协议,确保客户端与服务器之间的通信安全
  • 单/双向安全认证: 支持基于证书的单向或双向认证,防止未经授权的客户端接入
  • LDAP 及浏览器 Cookie 认证: 支持与现有的 LDAP 目录服务和 Web 应用程序集成,实现统一的身份认证和授权管理
  • 访问控制: 基于客户端地址、用户名等条件对访问进行控制,提高安全性
  • 限流: 能够灵活调控消息速率、连接速率等,防止被攻击或滥用

 

数据持久化

MQTT 服务器的数据持久化功能可确保关键数据不会因为服务器重启或故障而丢失。它将以下操作内容同步记录到各种数据库中进行持久化存储:

  • 客户端在线状态: 记录每个客户端的在线/离线状态
  • 主题订阅信息: 记录客户端订阅的主题列表
  • 消息抵送达回执: 记录已发送的消息是否被客户端成功接收
  • 离线消息缓存: 为离线客户端临时缓存消息,等待其重新上线后发送

支持的数据库类型包括关系型数据库(如 MySQL)、NoSQL 数据库(如 Redis)等,可根据实际需求进行选择和配置。

 


亚马逊云科技产品如何让客户获得更好的 MQTT 服务器体验

Amazon MQ 是 Apache ActiveMQ 和 RabbitMQ 的托管消息代理服务,可以轻松地在亚马逊云科技上设置和操作消息代理。Amazon MQ 可以为客户管理消息代理的预置、设置和维护,从而减少客户的运营责任。由于 Amazon MQ 通过行业标准的 API 和协议连接到当前的应用程序,因此,客户可以轻松迁移到亚马逊云科技,而无需重新编写代码。

MQTT 服务器主要功能_协议接入

快速迁移

将当前的应用程序连接到 Amazon MQ 非常容易,因为它使用行业标准的 API 和协议进行消息传递,包括 JMS、NMS、AMQP 1.0 和 0-9-1、STOMP、MQTT 和 WebSocket。MQTT (Message Queuing Telemetry Transport) 是一种轻量级的发布/订阅消息传输协议,专为受限环境下的物联网 (IoT) 应用而设计。它使用简单的消息头和有效的数据编码方式,可以最小化网络带宽的使用。这使客户只需更新应用程序的终端节点以连接到 Amazon MQ,就可以从使用这些标准的任何消息代理无缝转移到 Amazon MQ,而无需对应用程序进行大规模修改。

MQTT 服务器主要功能_集群部署

卸下运营责任

使用 Amazon MQ,您可以将消息代理的管理和维护工作卸载给亚马逊云科技。Amazon MQ 会自动配置基础设施以实现高可用性,确保消息代理的持续运行。您无需配置硬件或安装和维护软件,Amazon MQ 会自动管理软件升级、安全更新以及故障检测和恢复等任务,从而减轻了运维负担。

MQTT 服务器主要功能_接入安全

持久耐用的消息收发更易实现

当客户应用程序连接到 Amazon MQ 消息代理时,Amazon MQ 会自动配置以实现高可用性和消息持久性。Amazon MQ 以冗余方式将消息存储在亚马逊云科技区域内的多个可用区 (AZ) 之间,如果组件或可用区出现故障,消息代理将继续可用并保证消息不会丢失。这种跨可用区的冗余存储机制确保了消息的持久性和耐用性,使您能够更轻松地构建可靠的消息收发应用程序。


MQTT 协议的工作原理

MQTT 协议是一种轻量级的发布/订阅网络协议,主要用于物联网(IoT)等资源受限或网络带宽有限的远程连接场景。它基于经纪人架构运行,客户端设备和服务器应用程序通过经纪人进行解耦。

MQTT 协议的工作原理_发布/订阅模型

发布/订阅模型

MQTT 采用发布/订阅模型,消息发送方(发布者)和消息接收方(订阅者)通过经纪人进行通信。经纪人的作用是过滤所有来自发布者的传入消息,并正确地将它们分发给订阅者。这实现了发布者和订阅者之间的空间解耦。

MQTT 协议的工作原理_轻量高效

轻量高效

MQTT 是一种轻量级且高效的协议,即使在小型微控制器上也可以使用。它具有可扩展性、可靠性和安全性,内置了支持与大量 IoT 设备通信的功能。MQTT 还具有广泛的语言支持,使开发人员易于实现。

MQTT 协议的工作原理_消息传递质量

消息传递质量

MQTT 支持三种消息传递质量(QoS)级别:最多一次、至少一次和恰好一次,用于确定消息传递的可靠性。它还提供了保留消息、遗嘱消息和主题别名等功能,以增强协议的功能。

MQTT 协议的工作原理_安全性

安全性

MQTT 协议本身不包含内置的安全措施,但可以使用 TLS 加密来保证安全性。最小的 MQTT 控制消息只有两个字节,而控制消息最多可以携带 256 MB 的数据。


MQTT 与其他消息队列协议的区别

MQTT 与其他消息队列协议的区别_轻量级发布/订阅模式

轻量级发布/订阅模式

与其他消息队列协议不同,MQTT 采用了轻量级的发布 / 订阅通信模式。在这种模式下,发布者(publisher)和订阅者(subscriber)通过一个中介代理(broker)进行解耦,而不是直接相互连接。发布者将消息发布到主题(topic),订阅者订阅感兴趣的主题从而接收相关消息。这种架构支持一对多和多对一的通信模式,使 MQTT 非常适合物联网(IoT)等需要大规模设备通信的场景。

MQTT 与其他消息队列协议的区别_开放轻量级标准

开放轻量级标准

MQTT 是一种开放的 OASIS 标准和 ISO 推荐标准,而不是专有的消息队列协议。它被设计为一种轻量级协议,消息负载可小至 2 字节,非常适合资源受限的物联网设备。与其他协议相比,MQTT 在带宽和功耗方面的要求更低,可在低功耗广域网等狭窄带宽环境中运行。

MQTT 与其他消息队列协议的区别_可靠性和安全性

可靠性和安全性

MQTT 支持三种不同的服务质量(QoS)级别,分别提供最多一次、至少一次和恰好一次的消息传递保证。这使得 MQTT 能够根据应用场景的需求,在可靠性和效率之间进行权衡。此外,MQTT 还提供了身份认证和加密等安全特性,确保通信的安全性。

MQTT 与其他消息队列协议的区别_灵活的传输选择

灵活的传输选择

MQTT 可以在 TCP/IP 之上运行,也可以在其他传输协议(如 QUIC)之上运行,为部署场景提供了灵活性。与此相比,一些其他消息队列协议在传输选择方面可能会受到限制。


MQTT 在物联网领域的应用场景

工业设备和基础设施监控与控制

MQTT 协议的轻量级和低带宽特性使其非常适合于工业环境中的远程设备监控和控制应用。例如,在石油管道等基础设施监控中,MQTT 可以高效地将来自各种传感器的数据传输到中央系统,同时也能将控制命令下发到现场执行设备。

智能家居和楼宇自动化

在智能家居和楼宇自动化领域,MQTT 被广泛应用于连接和控制各种物联网设备,如灯光、恒温器和安防系统等。MQTT 的发布/订阅模型可以轻松地实现设备之间的通信和集中控制。

可穿戴设备和医疗健康

MQTT 协议在可穿戴设备和医疗健康物联网应用中也扮演着重要角色。这些应用通常需要将来自各种生物传感器的数据实时传输到云端进行存储和分析,MQTT 可以高效地完成这一任务。

实时数据处理和事件驱动架构

MQTT 的发布/订阅模型和可靠消息传递机制使其非常适合需要实时数据处理和事件驱动架构的物联网应用。许多基于实时数据分析的智能系统都采用了 MQTT 协议。

安全性和隐私保护

对于处理敏感数据的物联网应用,MQTT 提供了身份认证和加密传输等安全特性,可以有效保护数据的隐私和完整性。这使得 MQTT 成为这类应用的首选协议之一。


如何搭建自己的 MQTT 服务器

什么是 MQTT 代理服务器

MQTT 代理服务器是一款运行在计算机上的软件,可以部署在本地或云端。它充当了一个邮局的角色,MQTT 客户端不需要直接连接到预期的接收者,而是使用名为 "主题" 的主题行。任何订阅该主题的客户端都会收到该主题的所有消息副本。多个客户端可以从单个代理订阅主题(一对多能力),单个客户端也可以向多个代理注册订阅主题(多对一)。

代理服务器的功能

MQTT 代理服务器可以支持标准 MQTT 和符合 Sparkplug 等规范的 MQTT,并且可以在同一服务器上同时执行,并具有相同的安全级别。代理服务器会跟踪设备在线和离线时的所有会话信息,这个功能称为 "持久会话"。在这种状态下,代理服务器将存储每个客户端的连接信息、每个客户端订阅的主题,以及具有 QoS 1 或 2 的任何主题消息。

使用 MQTT 代理服务器的优势

使用 MQTT 代理服务器的主要优势包括:消除不安全的客户端连接、轻松从单个设备扩展到数千个设备、管理和跟踪所有客户端连接状态(包括安全凭证和证书)、在不影响安全性的情况下减少网络压力。

搭建自己的 MQTT 服务器

要搭建自己的 MQTT 服务器,您可以使用 Amazon IoT Core,这是一项全面管理的服务,可让您连接和管理 IoT 设备,并将消息路由到 亚马逊云科技 服务。Amazon IoT Core 支持 MQTT 作为通信协议,允许您轻松可靠地连接、管理和扩展设备群。您可以选择 MQTT 作为首选通信协议,并使用双向身份验证和端到端加密来保护设备连接和数据。此外,Amazon IoT Core 还允许您根据定义的业务规则实时过滤、转换和对设备数据采取行动。要开始在亚马逊云科技上使用 MQTT,您可以创建一个免费账户并开始使用该服务。


欢迎加入亚马逊云科技培训中心

欢迎加入亚马逊云科技培训中心

从 0 到 1 轻松上手云服务,获取更多官方开发资源及培训教程
从 0 到 1 轻松上手云服务,获取更多官方开发资源及培训教程
  • 快速上手训练营
  • 第一课:亚马逊云科技简介

    本课程帮助您初步了解云平台与本地环境的差异,以及亚马逊云科技平台的基础设施和部分核心服务,包括亚马逊云科技平台上的弹性高可用架构,架构设计准则和本地架构迁移上云的基本知识。

    亚马逊云科技技术讲师:李锦鸿

    第二课:存储与数据库服务

    您将在本课程中学习到亚马逊云科技上的三个存储服务分别是什么。我们也将在这个模块中为您介绍亚马逊云科技上的关系型数据库服务 Amazon Relational Database Service (RDS)。

    亚马逊云科技资深技术讲师:周一川

    第三课:安全、身份和访问管理

    在这个模块,您将学习到保护您在亚马逊云科技上构建的应用的安全相关知识,责任共担模型以及身份和访问管理服务, Identity and Access Management (IAM) 。同时,通过讲师演示,您将学会如何授权给 EC2 实例,允许其访问 S3 上的资源。

    亚马逊云科技技术讲师:马仲凯
  • 账单设置与查看
  • 视频:快速完成税务设置

    部署时间:5 分钟

    视频:账户账单信息

    部署时间:3 分钟

    视频:如何支付账单

    部署时间:3 分钟

  • 动手实操
  • 快速上手云上无服务器化的 MySQL 数据库

    本教程将引导您创建一个Aurora Serverless 数据库并且连接上它。

    部署时间:10 分钟

    启动一台基于 Graviton2 的 EC2 实例


    本教程将为您讲解如何在云控制台上启动一台基于 Graviton2 的 EC2 实例。

    部署时间:5 分钟

    使用 Amazon Systems Manager 进行云资源统一跟踪和管理

    在这个快速上手教程中,您将学会如何使用 Amazon Systems Manager 在 Amazon EC2 实例上远程运行命令。

    部署时间:10 分钟

准备好体验亚马逊云科技提供的云服务了吗?

新用户享受中国区域 12 个月免费套餐

快速注册账号 享用免费套餐

跟随注册步骤详解,三分钟快速创建账号,领取免费权益

打开中国区账号注册页面

01 填写您 注册账号的邮箱,点击“继续”

02 查看您的 注册账号邮箱

注: 发件箱 no-reply@register.signin.amazonaws.com.cn

03 输入 邮箱中收到的验证码,点击“继续”

注: 该链接中的内容显示语言是与您的网页浏览器设置相一致的,您可以根据需要自行调整语言栏。

立即开始注册 »

image

填写用户名密码

01 请设置您的 账号用户名

02 为您的帐号 设置密码

03 重新 输入密码

立即开始注册 »

图片

填写账号联系人以及公司信息

01 填写公司联系人 姓名全称

02 填写公司联系人的 联系电话

03 填写 公司名称

注: 公司名称请务必与您所提供的营业执照公司名称保持一致

04 填写 公司办公地址

注: 省份/自治区/直辖市 - 城市 - 区 - 街道门牌号以及楼层信息 - 邮政编码

05 请选择 是否需要发票

注: *附件-申请发票流程 供您参考

06 点击查看 客户协议 勾选方框表示您已阅读,并同意客户协议的条款

立即开始注册 »

图片

企业信息验证

01 在此上传 企业注册执照

02 请填写网络安全负责人的 姓名

注: 该字段务必与您下方提供的身份证号匹配或与证件上的姓名保持一致

03 请填写网络安全负责人的 联系方式

注: 有效的电子邮件地址 - 有效的中国内地 手机号码 - 座机号码(如无座机,请填写正确有效的手机号码)

04 在此上传网络安全负责人的 身份证件

注: 当您选择证件类型为“身份证”时,您需要填写正确的身份证号码,选择其他证件类型时,您需要上传证件扫描稿

立即开始注册 »

图片

手机验证与支持计划

01 在此填写 手机号

02 请输入您收到的 4 位 验证码

03 请点击 继续

04 请根据需求 选择一个支持计划

立即开始注册 »

图片
Summit

亚马逊云科技中国峰会即将开幕!

6 月 19 日 - 20 日|上海世博中心

与 12,000+ 云计算从业者齐聚一堂,探索全球行业应用实践,共话未来!