您好,登錄后才能下訂單哦!
基于HAProxy怎么搭建EMQ X集群,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
負載均衡器(LB)負責分發設備的 MQTT 連接與消息到 EMQ X 集群,采用 LB 可以提高 EMQ X 集群可用性、實現負載平衡以及動態擴容。
HAProxy 是一款使用 C 語言編寫的自由及開放源代碼軟件,其提供高可用性、負載均衡,以及基于 TCP 和 HTTP 的應用程序代理,它是免費、快速并且可靠的一種解決方案。
本文將介紹如何基于 HAProxy 部署 EMQ X 集群并在 HAProxy 上終結 SSL 連接,這種部署模式下 EMQ X 單集群可輕松支持數百萬設備。
軟硬件版本
Ubuntu 18.04
EMQ X Broker v4.2.5
HAProxy 2.2+
機器分配
172.16.239.107:HAProxy
172.16.239.108:EMQ X 節點 1
172.16.239.109:EMQ X 節點 2
參考 EMQ X Broker
wget https://www.emqx.io/downloads/broker/v4.2.5/emqx-ubuntu18.04-4.2.5-x86_64.zip 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 = emqx@172.16.239.108 ## 修改集群策略為static,無需手動添加節點了 cluster.discovery = static ## 所有集群節點 cluster.static.seeds = emqx@172.16.239.108, emqx@172.16.239.109 ## 為了獲取 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: #{running_nodes => ['emqx@172.16.239.108','emqx@172.16.239.109'], stopped_nodes => []}
$ 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
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。