Debian12安装配置Mqtt之EMQX
查看系统信息1、查看系统的基本信息包括内核名称、主机名、内核发行版、内核版本等。uname -a2、获取操作系统完整版本信息apt-get install lsb-release 安装lsb-release lsb_release -a3、显示特定的cpu完整信息lscpuMQTT概述MQTTMessage Queuing Telemetry Transport消息队列遥测传输是一种轻量级、基于客户端-服务器的消息发布/订阅模式的物联网通信协议广泛用于低带宽、不稳定网络环境下的设备通信。MQTT最大优点在于用极少的代码和有限的带宽为连接远程设备提供实时可靠的消息服务。MQTT协议是轻量、简单、开放和易于实现的作为一种低开销、低带宽占用的即时通讯协议其在物联网、小型设备、移动应用等方面有较广泛的应用。例如通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中包括受限的环境中如机器与机器M2M通信和物联网IoT。MQTT 与 HTTP 一样MQTT 运行在传输控制协议/互联网协议 (TCP/IP) 堆栈之上。一、MQTT 协议版本MQTT v3.12010年IBM 首次公开发布的规范。MQTT v3.1.12013年提交至 OASIS 成为开放标准目前最广泛使用的版本 。MQTT v5.02019年增强可扩展性与诊断能力支持属性系统、共享订阅、会话过期等新特性 。除标准版外还有一个简化版MQTT-SN该协议主要针对嵌入式设备这些设备一般工作于TCP/IP网络如ZigBee。二、MQTT 的核心组件客户端Client运行 MQTT 客户端库的应用或设备可作为发布者、订阅者或两者兼有 。消息代理Broker负责接收、路由和转发消息的核心服务器如 EMQX、Mosquitto、HiveMQ 等 。主题Topic用于消息路由的分层字符串如sensor/1/temperature支持通配符单层和#多层。三、MQTT 的关键技术特性QoS服务质量等级QoS 0至多一次依赖底层 TCP可能丢失。QoS 1至少一次可能重复。QoS 2仅一次确保精确投递 。遗嘱消息Last Will客户端异常断开时Broker 自动发布预设通知 。保留消息Retained Message最新消息被 Broker 保存新订阅者可立即接收 。持久会话支持断线后恢复订阅和未送达消息需 Clean Session0。四、MQTT 数据包结构固定头Fixed header存在于所有MQTT数据包中表示数据包类型及数据包的分组类标识可变头Variable header存在于部分MQTT数据包中数据包类型决定了可变头是否存在及其具体内容消息体Payload存在于部分MQTT数据包中表示客户端收到的具体内容整体MQTT的消息格式如下图所示五、MQTT 的变体与扩展MQTT-SNMQTT for Sensor Networks面向非 TCP/IP 网络如 ZigBee、UDP使用 Topic ID 替代主题名支持设备睡眠与网关发现 。MQTT over WebSocket允许浏览器直接连接 Broker适用于 Web 物联网应用 。MQTT over QUIC新兴传输层优化提升连接建立速度与安全性 。五、主流 MQTT Broker 实现EMQX高并发分布式 Broker支持百万级连接广泛用于工业物联网 。EMQX以前称为 EMQ已成为市场上最强大的开源 MQTT 代理之一。用 Erlang/OTP 编写EMQX 开箱即用即可提供巨大的可扩展性和容错性能够处理数百万个并发连接。典型应用大规模工业物联网部署、智慧城市基础设施以及需要水平扩展的企业应用。核心功能高吞吐量与可扩展性Erlang 的并发模型在大规模消息处理方面表现出色。多协议支持除了 MQTT还支持 MQTT-SN、CoAP、WebSocket 等。丰富的插件系统支持数据库Redis、MySQL、PostgreSQL和认证后端LDAP、JWT的插件。控制面板与监控实时指标和内置可观测性。MQTT 5.0 实现利用共享订阅和主题别名等高级功能。官网https://www.emqx.com/en链接https://www.emqx.com/en/cloud/serverless-mqttEclipse Mosquitto轻量级开源 Broker适合嵌入式与小型部署 。Eclipse Mosquitto 是 Eclipse 基金会的一个项目多年来一直是 IoT 爱好者和专业人士的首选。其轻量级的占用和符合标准的特点使其成为从小规模到企业级部署的首选。应用场景适用于个人项目、概念验证、小型企业的物联网设置以及以简便设置为首要考虑的云部署。核心功能轻量级且快速消耗最少的资源非常适合受限环境。确保与最新标准兼容支持 MQTT 3.1.1 和 MQTT 5.0。安全性和身份验证提供 SSL/TLS 加密和用户名/密码认证。跨接连接多个代理以扩展或隔离流量。活跃的社区由 Eclipse 基金会和一群贡献者支持。官网https://mosquitto.org/下载链接https://mosquitto.org/download/HiveMQ在商业 MQTT 领域享有盛誉。其社区版 (CE) 将许多企业级功能带到了开源领域。HiveMQ CE 采用 Java 开发专注于可靠性和性能以及开发者友好的集成。典型应用场景偏好 Java 生态系统且中大型 IoT 布局可能考虑后续升级到商业版。核心功能稳定的核心经过各个企业可靠性验证现在可供开源使用。插件框架通过基于 Java 的插件扩展代理功能。高可用性聚类社区版中的基本聚类商业版中具有更高级的功能。开发者友好工具全面的文档和内置指标。查看链接https://www.mqtt-dashboard.com/下载链接https://www.hivemq.com/download/VerneMQ商用级 Broker强调高可用与企业级安全 。基于 Erlang 的代理以高可用性和可扩展性著称。它采用无主节点的集群架构确保没有单个节点成为瓶颈或故障点。VerneMQ 在安全、稳定性和可扩展性方面的强大关注使其非常适合关键任务型的物联网部署。典型应用场景需求零停机升级、大量消息传输和强大的容错能力的应用场景。核心功能无主集群无缝扩展而无需停机。可插拔身份验证/授权通过 Lua 挂钩或外部数据库实现自定义安全设置。MQTT 5.0 兼容支持用户属性和消息过期时间等高级功能。会话持久化节点故障期间保留订阅状。运营良好详细的日志记录、跟踪和性能指标。官网https://vernemq.com/RabbitMQRabbitMQ 以 AMQP高级消息队列协议而闻名但提供了一个 MQTT 插件将其转变为混合消息系统。这种方法对于需要在单一代理下统一消息解决方案的团队来说具有吸引力。典型应用场景已经使用 RabbitMQ 的企业希望将 MQTT 与其他消息协议进行整合。或者需要多种协议共存的混合环境。核心功能统一消息支持多种协议如 AMQP、MQTT、STOMP 等。集群与联邦robust clustering 模型和联邦适用于地理分布式部署。插件与扩展包含广泛的认证、监控和队列管理库。企业生态系统拥有庞大的用户基础和成熟的工具特别是在 AMQP 工作流方面。官网https://www.rabbitmq.com/六、典型应用场景智能家居如温控器、灯光控制车联网车辆状态上报、远程控制工业物联网PLC 数据采集、设备监控远程医疗植入设备数据传输下载mqtt中文文档https://docs.emqx.com/zh/emqx/latest/deploy/install-debian.html下载 EMQX 企业版https://www.emqx.com/zh/downloads-and-install/enterprise?osDebian下载 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中配置node { name emqx192.168.0.10 role core } cluster { name emqxcld discovery_strategy manual core_nodes [emqx192.168.0.10, emqx192.168.0.11] }节点名格式为namehosthost 必须是 IP 或 FQDN 。Dashboard访问http://localhost:18083/初始默认账号密码admin/public登陆后配置账号密码。配置客户端认证EMQX 配置客户端认证的主要作用是保障物联网MQTT通信的安全性防止非法客户端连接和访问系统资源。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2582789.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!