摘要:注節點間如有防火墻,需要配置該端口段分布節點間通信使用連接端口范圍。
系統版本: ubuntu 16.04 LTS
EMQ 版本: 2.3.11
我使用的代理就是 EMQ(emqttd) 介紹或者詳細的配置可以到官網看看. 我這里只寫一些主要的配置.
下載和安裝我從官網下載的是 emqttd-ubuntu16.04-v2.3.11_amd64.deb 下載后直接雙擊安裝即可.
啟動安裝后在控制臺輸出 sudo emqttd console 來啟動代理. 啟動后會輸出如下信息.
Exec: /usr/lib/emqttd/erts-9.0/bin/erlexec -boot /usr/lib/emqttd/releases/2.3.11/emqttd -mode embedded -boot_var ERTS_LIB_DIR /usr/lib/emqttd/erts-9.0/../lib -mnesia dir "/var/lib/emqttd/mnesia/emq@127.0.0.1" -config /var/lib/emqttd/configs/app.2018.10.03.18.37.02.config -args_file /var/lib/emqttd/configs/vm.2018.10.03.18.37.02.args -vm_args /var/lib/emqttd/configs/vm.2018.10.03.18.37.02.args -- console Root: /usr/lib/emqttd /usr/lib/emqttd Erlang/OTP 20 [erts-9.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:32] [hipe] [kernel-poll:true] starting emqttd on node "emq@127.0.0.1" emqttd ctl is starting...[ok] emqttd hook is starting...[ok] emqttd router is starting...[ok] emqttd pubsub is starting...[ok] emqttd stats is starting...[ok] emqttd metrics is starting...[ok] emqttd pooler is starting...[ok] emqttd trace is starting...[ok] emqttd client manager is starting...[ok] emqttd session manager is starting...[ok] emqttd session supervisor is starting...[ok] emqttd wsclient supervisor is starting...[ok] emqttd broker is starting...[ok] emqttd alarm is starting...[ok] emqttd mod supervisor is starting...[ok] emqttd bridge supervisor is starting...[ok] emqttd access control is starting...[ok] emqttd system monitor is starting...[ok] emqttd 2.3.11 is running now Eshell V9.0 (abort with ^G) (emq@127.0.0.1)1> Load emq_mod_presence module successfully. dashboard:http listen on 0.0.0.0:18083 with 4 acceptors. mqtt:tcp listen on 127.0.0.1:11883 with 4 acceptors. mqtt:tcp listen on 0.0.0.0:1883 with 16 acceptors. mqtt:ws listen on 0.0.0.0:8083 with 4 acceptors. mqtt:ssl listen on 0.0.0.0:8883 with 16 acceptors. mqtt:wss listen on 0.0.0.0:8084 with 4 acceptors. mqtt:api listen on 0.0.0.0:8080 with 4 acceptors.
也可以用這兩個命令來啟停目錄
systemctl start emqttd
systemctl stop emqttd
目錄 | 說明 |
---|---|
/usr/lib/emqttd/ | 所有的可執行文件包括插件 |
/etc/emqttd/ | 保存所有配置文件包括插件配置 |
屬性名 | 說明 |
---|---|
node.process_limit | Erlang 虛擬機允許的最大進程數,一個 MQTT 連接會消耗2個 Erlang 進程,所以參數值 > 最大連接數 * 2 |
node.max_ports | Erlang 虛擬機允許的最大 Port 數量,一個 MQTT 連接消耗1個 Port,所以參數值 > 最大連接數 |
node.dist_listen_min | Erlang 分布節點間通信使用 TCP 連接端口范圍。注: 節點間如有防火墻,需要配置該端口段 |
node.dist_listen_max | Erlang 分布節點間通信使用 TCP 連接端口范圍。注: 節點間如有防火墻,需要配置該端口段 |
## Console log. Enum: off, file, console, both log.console = console ## Console log level. Enum: debug, info, notice, warning, error, critical, alert, emergency log.console.level = error ## Console log file ## log.console.file = log/console.logerror 日志
## Error log file log.error.file = log/error.logcrash 日志
## Enable the crash log. Enum: on, off log.crash = on log.crash.file = log/crash.logsyslog 日志
## Syslog. Enum: on, off log.syslog = on ## syslog level. Enum: debug, info, notice, warning, error, critical, alert, emergency log.syslog.level = errorMQTT 協議參數配置 ClientId 最大允許長度
## Max ClientId Length Allowed. mqtt.max_clientid_len = 1024MQTT 最大報文尺寸
## Max Packet Size Allowed, 64K by default. mqtt.max_packet_size = 64KB客戶端連接閑置時間
設置 MQTT 客戶端最大允許閑置時間(Socket 連接建立, 但未收到 CONNECT 報文):
## Client Idle Timeout (Second) mqtt.client.idle_timeout = 30啟用客戶端連接統計
## Enable client Stats: on | off mqtt.client.enable_stats = off強制 GC 設置
## Force GC: integer. Value 0 disabled the Force GC. mqtt.conn.force_gc_count = 100
關于插件的配置參考這里
MQTT 認證設置EMQ 消息服務器認證由一系列認證插件(Plugin)提供,系統支持按用戶名密碼、ClientID 或匿名認證.
系統默認開啟匿名認證(anonymous),通過加載認證插件可開啟的多個認證模塊組成認證鏈:
---------------- ---------------- ------------ Client --> | Username認證 | -ignore-> | ClientID認證 | -ignore-> | 匿名認證 | ---------------- ---------------- ------------ | | | |/ |/ |/ allow | deny allow | deny allow | deny
如果開啟 用戶名和密碼 認證以及 客戶ID認證時, 我們會先判斷 用戶名和密碼 如果認證成功會忽略客戶端ID, 如果認證失敗則會去認證客戶端ID.
?? 客戶端ID也需要配置密碼.
用戶名和密碼以及客戶端ID都是唯一的, 而且連接到代理的會話也是唯一的. 二次連接代理會將前一個下線.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72328.html
摘要:性能正在發布過多的消息系統性能,注意請使用單線程的萬條毫秒萬條毫秒萬毫秒萬條毫秒多線程的正在發布過多的消息問題異常信息正在進行過多的發布解決辦法消息發送發送限流用單獨的一個線程來完成消息的推送不用這個,使用就沒有事增加的值反思筆者出現這個錯 mqttclient性能&MQTT(32202): 正在發布過多的消息 org.eclipse.paho.client.mqttv3 2.2 GH...
摘要:一簡介實現方式實現協議需要客戶端和服務器端通訊完成,在通訊過程中,協議中有三種身份發布者代理服務器訂閱者。其中,消息的發布者和訂閱者都是客戶端,消息代理是服務器,消息發布者可以同時是訂閱者。 ...
閱讀 1324·2021-11-11 11:00
閱讀 3041·2021-09-24 09:47
閱讀 4950·2021-09-22 15:53
閱讀 960·2021-09-10 10:50
閱讀 3207·2021-09-01 11:40
閱讀 1160·2019-08-30 15:55
閱讀 471·2019-08-30 12:49
閱讀 1049·2019-08-29 17:12