EMQX 是一个开源的 MQTT 消息代理服务器,用于在物联网(IoT)和大规模实时数据应用中实现消息传递。本指南将介绍 EMQX 的原理、应用场景、部署、常用场景详解以及管理方法。

EMQ 默认开启的 MQTT 服务 TCP 端口:

端口

用途

1883

MQTT broker用于MQTT客户端连接EMQ X,发布消息和订阅主题

8883

SSL/TLS加密功能,连接EMQ X,以更加安全地进行消息传输

8083

WebSocket协议连接EMQ X消息服务器

8084

MQTT over WebSocket SSL/TLS端口。如果开启了SSL/TLS加密功能,使用此端口通过WebSocket连接EMQ X

4369

Erlang节点间通信,用于在EMQ X节点之间建立交互,并支持基于Erlang的软件系统(如RabbitMQ)的通信

18083

EMQ X Dashboard的默认端口。EMQ X Dashboard 是 EMQ X的图形管理界面,能够提供实时监控、统计、查询、告警等功能

emqtt中文官网

emqtt英文官网

emqtt github

emqtt download

EMQX 简介

EMQX 是基于 Erlang/OTP 构建的分布式 MQTT 消息代理服务器,它遵循 MQTT v3.1/v3.1.1/v5.0 协议标准,支持数百万的并发连接。EMQX 提供了高度可扩展性、可靠性和安全性,使其成为物联网和实时数据应用的理想选择。

EMQX 的应用场景

  1. 物联网(IoT): EMQX 作为 MQTT 消息代理服务器,适用于连接大量传感器、设备和应用程序的 IoT 网络。它可以轻松处理设备之间的实时通信和数据传输。
  2. 实时数据处理: EMQX 不仅支持 MQTT 协议,还支持 MQTT-SN、CoAP、LwM2M 等多种通信协议,使其可以广泛应用于实时数据处理、监控和控制领域。
  3. 智能家居和工业自动化: 在智能家居和工业自动化领域,EMQX 可以作为中心消息传递枢纽,实现设备之间的互联互通,提高系统的智能化和自动化水平。
  4. 实时位置跟踪: 利用 EMQX 的实时消息传递能力,可以实现对移动设备的实时位置跟踪和监控,例如车辆追踪、人员定位等场景。

EMQX 的部署

以下是在 Docker 环境下部署 EMQX 的简要步骤:

  1. 创建数据和日志目录:
mkdir -p /opt/emqx/data
chown -R docker:docker /opt/emqx/data
  1. 运行 EMQX Docker 容器:
docker run -d --name emqx -p 1883:1883 -p 8883:8883 -p 8083:8083 -p 18083:18083 -v /opt/emqx/data:/opt/emqx/data -v /opt/emqx/log:/opt/emqx/log emqx/emqx:5.0.14

以上命令将创建一个名为 emqx 的 Docker 容器,并将 EMQX 的端口映射到宿主机,同时挂载数据和日志目录。

EMQX 常用场景详解

  1. 发布/订阅消息: 使用 MQTT 客户端向 EMQX 发布消息,并使用订阅者订阅这些消息,实现实时的消息传递和通信。
  2. QoS(服务质量)控制: EMQX 支持 MQTT 的三种 QoS 等级,可以根据需求选择适当的 QoS 等级,确保消息传递的可靠性和稳定性。
  3. 持久化消息: EMQX 可以配置为持久化消息,确保即使在断开连接或重启后,消息也不会丢失。
  4. 集群部署: EMQX 支持集群部署,通过在多个节点上部署 EMQX 实例,可以实现高可用性和负载均衡。
  5. 安全认证与授权: EMQX 提供了多种认证和授权机制,包括用户名/密码认证、TLS/SSL 加密、ACL(访问控制列表)等,保障消息通信的安全性。

EMQX 的管理

  1. 控制台管理: EMQX 提供了 Web 控制台,可以通过浏览器访问来管理和监控 EMQX 实例的状态、连接数、消息流量等信息。
  2. 命令行管理: 使用 EMQX 提供的命令行工具,可以对 EMQX 实例进行配置、监控和管理,例如添加用户、修改配置、查看日志等。
  3. 集成监控系统: 可以将 EMQX 集成到监控系统中,例如 Prometheus 和 Grafana,实时监控 EMQX 实例的性能指标,及时发现和解决问题。
  4. 日志管理: EMQX 会生成详细的日志信息,可以通过查看日志来诊断和解决问题,也可以配置日志的级别和输出方式,以满足不同的需求。

通过以上管理方法,可以有效地监控和管理 EMQX 实例,确保其稳定运行和高效工作。

综上所述,EMQX 是一个功能强大的 MQTT 消息代理服务器,适用于各种物联网和实时数据应用场景。通过了解其原理、部署方法以及常用场景和管理技巧,可以更好地利用 EMQX 构建稳定、可靠的消息传递系统。