摘要:注節(jié)點間如有防火墻,需要配置該端口段分布節(jié)點間通信使用連接端口范圍。
系統(tǒng)版本: ubuntu 16.04 LTS
EMQ 版本: 2.3.11
我使用的代理就是 EMQ(emqttd) 介紹或者詳細(xì)的配置可以到官網(wǎng)看看. 我這里只寫一些主要的配置.
下載和安裝我從官網(wǎng)下載的是 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/ | 所有的可執(zhí)行文件包括插件 |
/etc/emqttd/ | 保存所有配置文件包括插件配置 |
屬性名 | 說明 |
---|---|
node.process_limit | Erlang 虛擬機允許的最大進程數(shù),一個 MQTT 連接會消耗2個 Erlang 進程,所以參數(shù)值 > 最大連接數(shù) * 2 |
node.max_ports | Erlang 虛擬機允許的最大 Port 數(shù)量,一個 MQTT 連接消耗1個 Port,所以參數(shù)值 > 最大連接數(shù) |
node.dist_listen_min | Erlang 分布節(jié)點間通信使用 TCP 連接端口范圍。注: 節(jié)點間如有防火墻,需要配置該端口段 |
node.dist_listen_max | Erlang 分布節(jié)點間通信使用 TCP 連接端口范圍。注: 節(jié)點間如有防火墻,需要配置該端口段 |
## 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 協(xié)議參數(shù)配置 ClientId 最大允許長度
## Max ClientId Length Allowed. mqtt.max_clientid_len = 1024MQTT 最大報文尺寸
## Max Packet Size Allowed, 64K by default. mqtt.max_packet_size = 64KB客戶端連接閑置時間
設(shè)置 MQTT 客戶端最大允許閑置時間(Socket 連接建立, 但未收到 CONNECT 報文):
## Client Idle Timeout (Second) mqtt.client.idle_timeout = 30啟用客戶端連接統(tǒng)計
## Enable client Stats: on | off mqtt.client.enable_stats = off強制 GC 設(shè)置
## Force GC: integer. Value 0 disabled the Force GC. mqtt.conn.force_gc_count = 100
關(guān)于插件的配置參考這里
MQTT 認(rèn)證設(shè)置EMQ 消息服務(wù)器認(rèn)證由一系列認(rèn)證插件(Plugin)提供,系統(tǒng)支持按用戶名密碼、ClientID 或匿名認(rèn)證.
系統(tǒng)默認(rèn)開啟匿名認(rèn)證(anonymous),通過加載認(rèn)證插件可開啟的多個認(rèn)證模塊組成認(rèn)證鏈:
---------------- ---------------- ------------ Client --> | Username認(rèn)證 | -ignore-> | ClientID認(rèn)證 | -ignore-> | 匿名認(rèn)證 | ---------------- ---------------- ------------ | | | |/ |/ |/ allow | deny allow | deny allow | deny
如果開啟 用戶名和密碼 認(rèn)證以及 客戶ID認(rèn)證時, 我們會先判斷 用戶名和密碼 如果認(rèn)證成功會忽略客戶端ID, 如果認(rèn)證失敗則會去認(rèn)證客戶端ID.
?? 客戶端ID也需要配置密碼.
用戶名和密碼以及客戶端ID都是唯一的, 而且連接到代理的會話也是唯一的. 二次連接代理會將前一個下線.
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/72328.html
摘要:性能正在發(fā)布過多的消息系統(tǒng)性能,注意請使用單線程的萬條毫秒萬條毫秒萬毫秒萬條毫秒多線程的正在發(fā)布過多的消息問題異常信息正在進行過多的發(fā)布解決辦法消息發(fā)送發(fā)送限流用單獨的一個線程來完成消息的推送不用這個,使用就沒有事增加的值反思筆者出現(xiàn)這個錯 mqttclient性能&MQTT(32202): 正在發(fā)布過多的消息 org.eclipse.paho.client.mqttv3 2.2 GH...
摘要:一簡介實現(xiàn)方式實現(xiàn)協(xié)議需要客戶端和服務(wù)器端通訊完成,在通訊過程中,協(xié)議中有三種身份發(fā)布者代理服務(wù)器訂閱者。其中,消息的發(fā)布者和訂閱者都是客戶端,消息代理是服務(wù)器,消息發(fā)布者可以同時是訂閱者。 ...
閱讀 1403·2021-11-11 11:00
閱讀 3266·2021-09-24 09:47
閱讀 5427·2021-09-22 15:53
閱讀 1037·2021-09-10 10:50
閱讀 3273·2021-09-01 11:40
閱讀 1241·2019-08-30 15:55
閱讀 528·2019-08-30 12:49
閱讀 1119·2019-08-29 17:12