一、EMQX官網
官網地址: https://www.emqx.io/zh
文檔地址: https://www.emqx.io/docs/zh/v4.4/getting-started/getting-started.html
二、EMQX介紹
2.1 概覽
EMQX (Erlang/Enterprise/Elastic MQTT Broker) 是基於 Erlang/OTP 平台開發的開源物聯網 MQTT 消息服務器。
Erlang/OTP是出色的軟實時 (Soft-Realtime)、低延時 (Low-Latency)、分布式 (Distributed)的語言平台。
MQTT 是輕量的 (Lightweight)、發布訂閱模式 (PubSub) 的物聯網消息協議。
EMQX 設計目標是實現高可靠,並支持承載海量物聯網終端的 MQTT 連接,支持在海量物聯網設備間低延時消息路由:
- 穩定承載大規模的 MQTT 客戶端連接,單服務器節點支持 200 萬連接。
- 分布式節點集群,快速低延時的消息路由。
- 消息服務器內擴展,支持定制多種認證方式、高效存儲消息到后端數據庫。
- 完整物聯網協議支持,MQTT、MQTT-SN、CoAP、LwM2M、WebSocket 或私有協議支持。
2.2 消息服務器功能列表
- 完整的 MQTT V3.1/V3.1.1 及 V5.0 協議規范支持
- QoS0, QoS1, QoS2 消息支持
- 持久會話與離線消息支持
- Retained 消息支持
- Last Will 消息支持
- MQTT/WebSocket TCP/SSL 支持
- HTTP 消息發布接口支持
- $SYS/# 系統主題支持
- 客戶端在線狀態查詢與訂閱支持
- 客戶端 ID 或 IP 地址認證支持
- 用戶名密碼認證支持
- LDAP、Redis、MySQL、PostgreSQL、MongoDB、HTTP 認證集成
- 瀏覽器 Cookie 認證
- 基於客戶端 ID、IP 地址、用戶名的訪問控制 (ACL)
- 多服務器節點集群 (Cluster)
- 支持 manual、mcast、dns、etcd、k8s 等多種集群發現方式
- 網絡分區自動愈合
- 消息速率限制
- 連接速率限制
- 按分區配置節點
- 多服務器節點橋接 (Bridge)
- MQTT Broker 橋接支持
- Stomp 協議支持
- MQTT-SN 協議支持
- CoAP 協議支持
- LwM2M 協議支持
- Stomp/SockJS 支持
- 延時 Publish ($delay/topic)
- Flapping 檢測
- 黑名單支持
- 共享訂閱 ($share/:group/topic)
- TLS/PSK 支持
- 規則引擎
- 空動作 (調試)
- 消息重新發布
- 橋接數據到 MQTT Broker
- 檢查 (調試)
- 發送數據到 Web 服務
三、安裝
EMQX支持各個系統的安裝(官網也有安裝教程)(筆者這里選擇centos 7 zip壓縮包安裝)
3.1 下載壓縮包(筆者選擇 centos 7 v4.1.5)
3.2 安裝步驟
# 1. 下載 emqx-centos7-v4.1.5.zip (自己下載壓縮包,上傳至centos7中也可)
wget https://www.emqx.com/zh/downloads/broker/4.1.5/emqx-centos7-v4.1.5.zip
# 2. 安裝 -> 解壓縮
unzip emqx-centos7-v4.1.5.zip
# 3. 運行 -> 進入解壓后的文件夾下
./bin/emqx start
運行
查看狀態
停止
四、打開可視化dashboard
地址為: http://ip地址:18083/ (默認賬號: admin 密碼: public)
可設置為中文
五、配置 EMQX 服務器 用戶名/密碼登錄
5.1 停止服務
./bin/emqx stop
5.2 編輯用戶名密碼的配置文件
# 在emqx 目錄下執行
vim ./etc/plugins/emqx_auth_username.conf
增加用戶名、密碼,密碼算法改為plain,透傳
5.3 關閉匿名登錄
vim ./etc/emqx.conf
查找allow_anonymous,修改為false
5.4 啟動emqx服務
./bin/emqx start
5.5 進入后台管理界面dashboard,啟動用戶名密碼認證。
http://服務器IP:18083
六、使用MQTTX連接
七、EMQX服務器動態添加用戶密碼
CLI命令
啟動emqx_auth_username
插件后,可以使用CLI命令管理username
./bin/emqx_ctl users help