基於 HAProxy 搭建 EMQ X 集群

2022-07-10 06:33:08 字數 2859 閱讀 5376

負載均衡器(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.keyemqx.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...