一、准备三台机器

以centos7为例,准备三台机器(可以为虚拟机)
pc1:作为emqx集群节点1
pc2:作为emqx集群节点2
pc3:部署haproxy,用于部署emqx的负载均衡器
提前将三台机器的防火墙全部关闭systemctl stop firewalld
关闭selinux setenforce 0

二、安装EMQX

1.安装emqx服务

yum install emqx -y

2.编辑emqx配置文件

修改节点名称,以节点1(192.168.0.1为例)将其节点名称修改为“emqx@192.168.0.1”

vim /etc/emqx/emqx.conf
...
node {
  name = "emqx@192.168.0.1"
  cookie = "emqxsecretcookie"
  data_dir = "/var/lib/emqx"
}
...

3.构建集群

1.先按照步骤2中在节点2上进行相应操作,再将节点2加入集群

emqx_ctl cluster join emqx@192.168.0.1

4.查看节点是否加入成功

emqx_ctl cluster status
# 输出
"""
Cluster status: #{running_nodes =>
                      ['emqx@192.168.0.1','emqx@192.168.0.2'],
                  stopped_nodes => []}
"""

三、部署haproxy

1.在pc3上安装haproxy

yum install haproxy -y

2.修改配置

step 1:

vim /etc/haproxy/haproxy.cfg

step2:在配置文件中加入以下内容

# 配置一个前端,监听1883端口
frontend frontend_emqx_tcp
    bind *:1883
    mode tcp
    option tcplog
    default_backend backend_emqx_tcp

# 配置后端服务器池
backend backend_emqx_tcp
    mode tcp
    balance roundrobin # 使用轮询算法进行负载均衡
    server emqx_node1 192.168.0.1:1883 check inter 10s fall 2 rise 5 # 对node1进行健康检查
    server emqx_node2 192.168.0.2:1883 check inter 10s fall 2 rise 5 # 对node2进行健康检查

# 可选:启用HAProxy的统计页面以便监控
listen stats
    bind *:8888
    mode tcp
    stats enable
    stats uri /stats
    stats refresh 30s

step3:检验语法是否错误

haproxy -f /etc/haproxy/haproxy.cfg -c

step4: 启动haproxy服务

systemctl restart haproxy

五、验证是否成功

1.在节点1和节点2分别起两个订阅客户端
(提前安装好mosquitto指令服务)

mosquitto_sub -t test 

2.随便找一台pc发布一条消息

mosquitto_pub -t test -h 192.168.0.3 -m hello
# -t 指定主题
# -h 指定负载均衡器的ip
# -m 指定消息内容

3.节点1和节点2均订阅到消息,说明服务部署成功

更多推荐