Debian12安装配置Mqtt之EMQX

查看系统信息

1、查看系统的基本信息,包括内核名称、主机名、内核发行版、内核版本等。

bash 复制代码
uname -a

2、获取操作系统完整版本信息

bash 复制代码
apt-get install lsb-release 安装lsb-release
lsb_release -a

3、显示特定的cpu完整信息

bash 复制代码
lscpu

MQTT概述

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种轻量级、基于客户端-服务器的消息发布/订阅模式的物联网通信协议,广泛用于低带宽、不稳定网络环境下的设备通信。

MQTT最大优点在于,用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务

MQTT协议是轻量、简单、开放和易于实现的,作为一种低开销、低带宽占用的即时通讯协议,其在物联网、小型设备、移动应用等方面有较广泛的应用。

例如,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。

MQTT 与 HTTP 一样,MQTT 运行在传输控制协议/互联网协议 (TCP/IP) 堆栈之上。

一、MQTT 协议版本

  • MQTT v3.1‌(2010年):IBM 首次公开发布的规范。
  • MQTT v3.1.1‌(2013年):提交至 OASIS 成为开放标准,目前最广泛使用的版本 ‌‌。
  • MQTT v5.0‌(2019年):增强可扩展性与诊断能力,支持属性系统、共享订阅、会话过期等新特性 ‌‌。
  • 除标准版外,还有一个简化版MQTT-SN,该协议主要针对嵌入式设备,这些设备一般工作于TCP/IP网络,如:ZigBee。

二、MQTT 的核心组件

  • ‌**客户端(Client)**‌:运行 MQTT 客户端库的应用或设备,可作为发布者、订阅者或两者兼有 ‌‌。
  • ‌**消息代理(Broker)**‌:负责接收、路由和转发消息的核心服务器,如 EMQX、Mosquitto、HiveMQ 等 ‌‌。
  • 主题(Topic) ‌:用于消息路由的分层字符串(如 sensor/1/temperature),支持通配符 +(单层)和 #(多层)‌‌。

三、MQTT 的关键技术特性

  • QoS(服务质量)等级 ‌:
    1. QoS 0‌:至多一次,依赖底层 TCP,可能丢失。
    2. QoS 1‌:至少一次,可能重复。
    3. QoS 2‌:仅一次,确保精确投递 ‌‌。
  • ‌**遗嘱消息(Last Will)**‌:客户端异常断开时,Broker 自动发布预设通知 ‌‌。
  • ‌**保留消息(Retained Message)**‌:最新消息被 Broker 保存,新订阅者可立即接收 ‌‌。
  • 持久会话‌:支持断线后恢复订阅和未送达消息(需 Clean Session=0)‌‌。

‌**四、**MQTT 数据包结构

  • 固定头(Fixed header),存在于所有MQTT数据包中,表示数据包类型及数据包的分组类标识;
  • 可变头(Variable header),存在于部分MQTT数据包中,数据包类型决定了可变头是否存在及其具体内容;
  • 消息体(Payload),存在于部分MQTT数据包中,表示客户端收到的具体内容;

整体MQTT的消息格式如下图所示:

五、MQTT 的变体与扩展

  • ‌**MQTT-SN(MQTT for Sensor Networks)**‌:面向非 TCP/IP 网络(如 ZigBee、UDP),使用 Topic ID 替代主题名,支持设备睡眠与网关发现 ‌‌。
  • MQTT over WebSocket‌:允许浏览器直接连接 Broker,适用于 Web 物联网应用 ‌‌。
  • MQTT over QUIC‌:新兴传输层优化,提升连接建立速度与安全性 ‌‌。

五、主流 MQTT Broker 实现

  • EMQX‌:高并发分布式 Broker,支持百万级连接,广泛用于工业物联网 ‌‌。
  • Eclipse Mosquitto‌:轻量级开源 Broker,适合嵌入式与小型部署 ‌‌。
  • HiveMQ / VerneMQ‌:商用级 Broker,强调高可用与企业级安全 ‌‌。

六、典型应用场景

  • 智能家居(如温控器、灯光控制)
  • 车联网(车辆状态上报、远程控制)
  • 工业物联网(PLC 数据采集、设备监控)
  • 远程医疗(植入设备数据传输)‌‌

下载

mqtt中文文档:https://docs.emqx.com/zh/emqx/latest/deploy/install-debian.html

下载 EMQX 企业版:https://www.emqx.com/zh/downloads-and-install/enterprise?os=Debian

bash 复制代码
​下载 wget https://www.emqx.com/zh/downloads/enterprise/6.2.0/emqx-enterprise-6.2.0-debian12-amd64.tar.gz
安装 mkdir -p emqx && tar -zxvf emqx-enterprise-6.2.0-debian12-amd64.tar.gz -C emqx
启动  ./emqx/bin/emqx start

集群配置

搭建 EMQX 集群,需在 /emqx/etc/emqx.conf 中配置:

XML 复制代码
node {
  name = "emqx@192.168.0.10"
  role = core
}

cluster {
  name = "emqxcld"
  discovery_strategy = manual
  core_nodes = ["emqx@192.168.0.10", "emqx@192.168.0.11"]
}

节点名格式为 name@host,host 必须是 IP 或 FQDN ‌。

Dashboard

访问http://ip:18083/,初始默认账号密码:admin/public,登陆后配置账号密码。

配置客户端认证

EMQX 配置客户端认证的主要作用是‌保障物联网(MQTT)通信的安全性‌,防止非法客户端连接和访问系统资源。

相关推荐
SimLine芯见1 小时前
专为空管环境打造的KVM切换器,满足主备自动化高速无缝切换需求
运维·自动化
测试员周周1 小时前
【AI测试系统】第1篇:LangGraph 实战:用 State Graph 搭建 AI测试流水线(4 步编排 + RAG 增强 + 完整代码)
linux·windows·python·功能测试·microsoft·单元测试·多轮对话
不做无法实现的梦~1 小时前
PX4 机载电脑 Linux 环境安装、串口、网络、ROS 完整配置
linux·运维·网络
嵌入式×边缘AI:打怪升级日志1 小时前
嵌入式Linux开发(了解交叉编译工具链的组成)
java·linux·运维
IT界的老黄牛1 小时前
停电后 Redis 集群两节点起不来:fix 完还报 Bad file format?多部分 AOF 修复的正确姿势
运维·redis·缓存
接着奏乐接着舞1 小时前
3D Tiles tileset.jso 数据格式
运维·服务器·3d
李小白202002021 小时前
RK3568 linux6.1 死机
linux·运维·服务器
FreeGo~1 小时前
Linux 系统编程 进程篇 (五)
java·linux·服务器
nbwenren2 小时前
办公AI实测:Gemini3、GPT-4o、Claude3.5谁更强?
服务器·数据库·php