EMQ 默認開啓的 MQTT 服務 TCP 端口:html
1883 | MQTT 協議端口 |
8883 | MQTT/SSL 端口 |
8083 | MQTT/WebSocket 端口 |
8084 | MQTT/WebSocket/SSL 端口 |
防火牆根據使用的 MQTT 接入方式,開啓上述端口的訪問權限。node
EMQ 節點集羣使用的 TCP 端口:python
4369 | 集羣節點發現端口 |
6369 | 集羣節點控制通道 |
集羣節點間若有防禦牆,需開啓上述 TCP 端口互訪權限nginx
NGINX Plus 產品做爲 EMQ 集羣 LB,並終結 SSL 鏈接:centos
節點 | IP 地址 |
---|---|
emq1 | 192.168.0.2 |
emq2 | 192.168.0.3 |
配置 /etc/nginx/nginx.conf,示例:服務器
stream {
# Example configuration for TCP load balancing
upstream stream_backend {
zone tcp_servers 64k;
hash $remote_addr;
server 192.168.0.2:1883 max_fails=2 fail_timeout=30s;
server 192.168.0.3:1883 max_fails=2 fail_timeout=30s;
}
server {
listen 8883 ssl;
status_zone tcp_server;
proxy_pass stream_backend;
proxy_buffer_size 4k;
ssl_handshake_timeout 15s;
ssl_certificate /etc/emqttd/certs/cert.pem;
ssl_certificate_key /etc/emqttd/certs/key.pem;
}
}
通用包下載地址:curl
CentOS7 | http://emqtt.com/downloads/latest/centos7 |
[root@emq-node1 opt]# ll total 20020 -rw-r--r-- 1 root root 20497451 Aug 23 2018 emqttd-centos7-v2.3.11.zip [root@emq-node1 opt]# unzip emqttd-centos7-v2.3.11.zip &>/dev/null [root@emq-node1 opt]# cd emqttd/ #啓動EMQTT [root@emq-node1 emqttd]# ./bin/emqttd start emqttd 2.3.11 is started successfully! #查看EMQTT集羣狀態 [root@emq-node1 emqttd]# ./bin/emqttd_ctl status Node 'emq@127.0.0.1' is started emqttd 2.3.11 is running #WEB的URL狀態監控 [root@emq-node1 emqttd]# curl http://localhost:8080/status Node emq@127.0.0.1 is started emqttd is running
#emqttd-node1先關閉服務 [root@emq-node1 emqttd]# ./bin/emqttd stop #原配置文件 [root@emq-node1 emqttd]# egrep '127.0.0.1' etc/emq.conf|egrep -v '#' node.name = emq@127.0.0.1 listener.tcp.internal = 127.0.0.1:11883 #更改配置文件 [root@emq-node2 emqttd]# hostname -I 10.0.0.101 [root@emq-node1 emqttd]# sed -i 's#127.0.0.1#10.0.0.101#g' etc/emq.conf [root@emq-node1 emqttd]# egrep '10.0.0.101' etc/emq.conf|egrep -v '#' node.name = emq@10.0.0.101 listener.tcp.internal = 10.0.0.101:11883 #在啓動服務 [root@emq-node1 emqttd]# ./bin/emqttd start emqttd 2.3.11 is started successfully! #emqttd-nod2重複操做 [root@emq-node2 emqttd]# ./bin/emqttd stop ok [root@emq-node2 emqttd]# hostname -I 10.0.0.102 [root@emq-node2 emqttd]# sed -i 's#127.0.0.1#10.0.0.102#g' etc/emq.conf [root@emq-node2 emqttd]# ./bin/emqttd start emqttd 2.3.11 is started successfully! #手動加入集羣 [root@emq-node2 emqttd]# ./bin/emqttd_ctl cluster join emq@10.0.0.101 Join the cluster successfully. Cluster status: [{running_nodes,['emq@10.0.0.101','emq@10.0.0.102']}] [root@emq-node2 emqttd]# ./bin/emqttd_ctl cluster status Cluster status: [{running_nodes,['emq@10.0.0.101','emq@10.0.0.102']}] #重節點中刪除 [root@emq-node2 emqttd]# ./bin/emqttd_ctl cluster leave Leave the cluster successfully. Cluster status: [{running_nodes,['emq@10.0.0.102']}] #配置文件中指定集羣節點,兩臺機器操做一致先關閉EMQTT [root@emq-node1 emqttd]# egrep -n "cluster.static.seeds|cluster.discovery" etc/emq.conf 23: cluster.discovery = static #默認是manual手動建立集羣,集羣節點 49:cluster.static.seeds = emq@10.0.0.101,emq@10.0.0.102
#默認帳號密碼admin publictcp
擴展插件以及優化詳見官方文檔:http://emqtt.com/docs/v2/index.html分佈式