摘要:注節(jié)點(diǎn)間如有防火墻,需要配置該端口段分布節(jié)點(diǎn)間通信使用連接端口范圍。
系統(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 下載后直接雙擊安裝即可.
啟動(dòng)安裝后在控制臺(tái)輸出 sudo emqttd console 來啟動(dòng)代理. 啟動(dòng)后會(huì)輸出如下信息.
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/[email protected]" -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 "[email protected]" 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) ([email protected])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.
也可以用這兩個(gè)命令來啟停目錄
systemctl start emqttd
systemctl stop emqttd
目錄 | 說明 |
---|---|
/usr/lib/emqttd/ | 所有的可執(zhí)行文件包括插件 |
/etc/emqttd/ | 保存所有配置文件包括插件配置 |
屬性名 | 說明 |
---|---|
node.process_limit | Erlang 虛擬機(jī)允許的最大進(jìn)程數(shù),一個(gè) MQTT 連接會(huì)消耗2個(gè) Erlang 進(jìn)程,所以參數(shù)值 > 最大連接數(shù) * 2 |
node.max_ports | Erlang 虛擬機(jī)允許的最大 Port 數(shù)量,一個(gè) MQTT 連接消耗1個(gè) Port,所以參數(shù)值 > 最大連接數(shù) |
node.dist_listen_min | Erlang 分布節(jié)點(diǎn)間通信使用 TCP 連接端口范圍。注: 節(jié)點(diǎn)間如有防火墻,需要配置該端口段 |
node.dist_listen_max | Erlang 分布節(jié)點(diǎn)間通信使用 TCP 連接端口范圍。注: 節(jié)點(diǎn)間如有防火墻,需要配置該端口段 |
## 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 最大允許長(zhǎng)度
## Max ClientId Length Allowed. mqtt.max_clientid_len = 1024MQTT 最大報(bào)文尺寸
## Max Packet Size Allowed, 64K by default. mqtt.max_packet_size = 64KB客戶端連接閑置時(shí)間
設(shè)置 MQTT 客戶端最大允許閑置時(shí)間(Socket 連接建立, 但未收到 CONNECT 報(bào)文):
## Client Idle Timeout (Second) mqtt.client.idle_timeout = 30啟用客戶端連接統(tǒng)計(jì)
## Enable client Stats: on | off mqtt.client.enable_stats = off強(qiáng)制 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)證插件可開啟的多個(gè)認(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)證時(shí), 我們會(huì)先判斷 用戶名和密碼 如果認(rèn)證成功會(huì)忽略客戶端ID, 如果認(rèn)證失敗則會(huì)去認(rèn)證客戶端ID.
?? 客戶端ID也需要配置密碼.
用戶名和密碼以及客戶端ID都是唯一的, 而且連接到代理的會(huì)話也是唯一的. 二次連接代理會(huì)將前一個(gè)下線.
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72328.html
摘要:性能正在發(fā)布過多的消息系統(tǒng)性能,注意請(qǐng)使用單線程的萬(wàn)條毫秒萬(wàn)條毫秒萬(wàn)毫秒萬(wàn)條毫秒多線程的正在發(fā)布過多的消息問題異常信息正在進(jìn)行過多的發(fā)布解決辦法消息發(fā)送發(fā)送限流用單獨(dú)的一個(gè)線程來完成消息的推送不用這個(gè),使用就沒有事增加的值反思筆者出現(xiàn)這個(gè)錯(cuò) mqttclient性能&MQTT(32202): 正在發(fā)布過多的消息 org.eclipse.paho.client.mqttv3 2.2 GH...
摘要:一簡(jiǎn)介實(shí)現(xiàn)方式實(shí)現(xiàn)協(xié)議需要客戶端和服務(wù)器端通訊完成,在通訊過程中,協(xié)議中有三種身份發(fā)布者代理服務(wù)器訂閱者。其中,消息的發(fā)布者和訂閱者都是客戶端,消息代理是服務(wù)器,消息發(fā)布者可以同時(shí)是訂閱者。 ...
閱讀 1337·2021-11-11 11:00
閱讀 3069·2021-09-24 09:47
閱讀 5005·2021-09-22 15:53
閱讀 976·2021-09-10 10:50
閱讀 3219·2021-09-01 11:40
閱讀 1178·2019-08-30 15:55
閱讀 481·2019-08-30 12:49
閱讀 1063·2019-08-29 17:12