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)通信的安全性‌,防止非法客户端连接和访问系统资源。

相关推荐
Adorable老犀牛11 分钟前
nginx_exporter:Prometheus 监控 Nginx 基础指标
运维·nginx·prometheus
山里幽默的程序员12 分钟前
DevOps 必备:盘点2026 年最强RESTful API 接口测试方案
运维·restful·devops·api开发·api开发工具
happymaker062614 分钟前
Linux常见命令总结
linux·运维·服务器
加农炮手Jinx16 分钟前
Flutter for OpenHarmony:pub_updater 命令行工具自动更新专家(DevOps 运维必备) 深度解析与鸿蒙适配指南
android·运维·网络·flutter·华为·harmonyos·devops
不念霉运17 分钟前
Gitee领跑2025中国DevOps市场:本土力量崛起
运维
无心水17 分钟前
【Hermes:团队、企业、生态与边界】47、Hermes 在 CI/CD 中的完整 DevOps 流水线:从 PR 审查到自动部署,让 Agent 接管你的发布流程
运维·人工智能·devops·openclaw·养龙虾·hermes·honcho
lbb 小魔仙18 分钟前
【Linux】DevOps 工程师必备:Linux 自动化脚本与高效工具链整合
linux·自动化·devops
开源量化GO30 分钟前
期货 K 线算信号 tick 级止损:天勤双序列 wait_update 触发规则
linux·运维·服务器·python
m0_7381207231 分钟前
HVV应急溯源基础——Linux 系统安全加固配置指南(一)
linux·运维·服务器·安全·网络安全·系统安全
武子康35 分钟前
调查研究-167 Docker Compose 详解:从单容器到多服务编排的工程化入口
运维·docker·云原生·容器·kubernetes·k8s·docker-compose