千家信息网

基于HAProxy怎么搭建EMQ X集群

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,基于HAProxy怎么搭建EMQ X集群,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。负载均衡器(LB)负责分发设备的
千家信息网最后更新 2025年01月31日基于HAProxy怎么搭建EMQ X集群

基于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

安装

EMQX

参考 EMQ X Broker

wget https://www.emqx.io/downloads/broker/v4.2.5/emqx-ubuntu18.04-4.2.5-x86_64.zipunzip emqx-ubuntu18.04-4.2.5-x86_64.zip

HAProxy

sudo apt-get updatesudo apt-get install software-properties-common -ysudo add-apt-repository -y ppa:vbernat/haproxy-2.2sudo apt-get updatesudo apt-get install -y haproxy=2.2.\*

配置

EMQX

修改 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_protocollistener.tcp.external.proxy_protocol = on

HAProxy

修改 /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

运行

EMQX

$ ./bin/emqx start## 查看集群状态$ ./bin/emqx_ctl cluster statusCluster status: #{running_nodes =>                      ['emqx@172.16.239.108','emqx@172.16.239.109'],                  stopped_nodes => []}

HAProxy

$ 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

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

集群 配置 节点 文件 均衡 可用性 设备 准备 帮助 支持 清楚 自由 内容 动态 可以通过 命令 地址 对此 应用程序 情况 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 用于数据库恢复重要文件的是 格力校招本科软件开发怎么样 网络安全主要来自攻击者 眉山金融软件开发上市公司 网络安全扫描结果分析 2018网络安全和信息化报告 基站可以作为服务器吗 简述非关系型数据库的概念与特点 IT软件开发的研究 开发区网络技术有限公司 联想sr550服务器教程 太原星巢网络技术有限公司 我的世界服务器吃内存吗 轻量应用服务器 安全组 登录服务器提示安全登录 依据网络安全法个人组织 网络安全知识ppt背景 恢复新中大数据库 无锡oa软件开发价格 个人电脑 网站服务器 手机安全网络安全图片 博物馆资源数据库建设方案 计算机网络技术网信安全方向 cvs服务器怎么传linux 服务器管理器显示没有激活 人机料法环 软件开发 fm2019数据库地址 江苏工控软件开发收费报价表 公务员网络技术岗位 库尔勒网络安全工程师
0