負載均衡器(lb)負責分發裝置的 mqtt 連線與訊息到 emq x 集群,採用 lb 可以提高 emq x 集群可用性、實現負載平衡以及動態擴容。
haproxy 是一款使用 c 語言編寫的自由及開放源**軟體,其提供高可用性、負載均衡,以及基於 tcp 和 http 的應用程式**,它是免費、快速並且可靠的一種解決方案。
本文將介紹如何基於 haproxy 部署 emq x 集群並在 haproxy 上終結 ssl 連線,這種部署模式下 emq x 單集群可輕鬆支援數百萬裝置。
軟硬體版本
機器分配
參考 emq x broker
wget
unzip emqx-ubuntu18.04-4.2.5-x86_64.zip
sudo apt-get update
sudo apt-get install software-properties-common -y
sudo add-apt-repository -y ppa:vbernat/haproxy-2.2
sudo apt-get update
sudo apt-get install -y haproxy=2.2.\*
修改emqx/etc/emqx.conf
配置檔案,另一台同理
## 修改節點名
node.name = [email protected]
## 修改集群策略為static,無需手動新增節點了
cluster.discovery = static
## 所有集群節點
cluster.static.seeds = [email protected], [email protected]
## 為了獲取 ip 位址,需要設定 proxy_protocol
listener.tcp.external.proxy_protocol = on
修改/etc/haproxy/haproxy.cfg
新增 tcp backend 配置
backend backend_emqx_tcp
mode tcp
balance roundrobin
server emqx_node_1 172.16.239.108:1883 check-send-proxy send-proxy-v2 check inter 10s fall 2 rise 5
server emqx_node_2 172.16.239.109:1883 check-send-proxy send-proxy-v2 check inter 10s fall 2 rise 5
新增 dashboard backend 配置
backend backend_emqx_dashboard
balance roundrobin
server emqx_node_1 172.16.239.108:18083 check
server emqx_node_2 172.16.239.109:18083 check
新增 tcp frontend 配置
frontend frontend_emqx_tcp
bind *:1883
option tcplog
mode tcp
default_backend backend_emqx_tcp
新增 dashboard frontend 配置
frontend frontend_emqx_dashboard
bind *:18083
option tcplog
mode tcp
default_backend backend_emqx_dashboard
$ ./bin/emqx start
## 檢視集群狀態
$ ./bin/emqx_ctl cluster status
cluster status: #
$ sudo service haproxy start
此時便可以通過18083
訪問 dashboard
通過1883
連線到集群,連線情況可以在 dashboard 檢視,或者在節點上執行命令
$ ./bin/emqx_ctl clients list
如果需要 tls 終結,先準備好emqx.key
和emqx.crt
檔案,然後合併生成emqx.pem
檔案
$ cat emqx.crt emqx.key > emqx.pem
然後新增以下配置即可
frontend frontend_emqx_tcp
bind *:8883 ssl crt /opt/certs/emqx.pem no-sslv3
option tcplog
mode tcp
default_backend backend_emqx_tcp
至此,我們完成了基於 haproxy 搭建 emq x 集群以及使用,haproxy 更詳細的使用參見 haproxy documentation。 EMQX集群搭建
解壓 unzip emqx centos7 v4.0.3.zip 開放埠 5369,1883,18083,11883,8081,4370,8883,8083,8084 修改配置 vim emqx etc emqx cfg node.name emqx com 自己伺服器網域名稱 node.dist ...
MQTT伺服器( emqx )搭建
訪問 後 點選產品 找到免費試用 下拉找到 emqx開源版 下拉選擇版本和系統 啟動mqtt伺服器 啟動cmd視窗,進入到bin目錄,執行以下指令 第一條是啟動 emqx start 第二條是檢視執行狀態 emqx ctl status 到這裡,就說明mqtt伺服器已正常執行。就可以使用支援mqtt...
Haproxy搭建Web群集概述
博文目錄 一 haproxy概述 1 http請求 2 負載均衡常用排程演算法 3 常見的web群集排程器 二 haproxy配置項介紹 1 global配置項通常有下面配置引數 2 defaults配置項配置預設引數,一般會被應用元件繼承,如果在應用元件中沒有特別的宣告,將安裝預設配置引數 3 l...