emqtt集群搭建,haproxy负载均衡
1、准备:
1)、下载所需安装包并上传至服务器
2)、3台centOS7 系统的虚机或者服务器
2、emq集群搭建
进入解压后的eqmx里的etc文件夹,编辑emqx.conf文件(3台服务器都需进行如下操作,node.name分别为node1,node2,node3)
修改以下内容:
cluster.discovery = static ==========>> 改为静态发现配合下面的命令可以自动发现集群节点
cluster.static.seeds = node1@192.168.0.210,node2@192.168.0.211,node3@192.168.0.212
node.name = node1@192.168.0.210 ============>> 节点名称和ip
node.dist_listen_min = 6369
node.dist_listen_max = 7369
3、 启动emqx
启动emqx命令为
./bin/emqx start
停止emqx命令为:
./bin/emqx stop
4、Dashboard
服务器ip+18083 查看emq的状态等信息(3个节点集群实现完成)
5、haproxy安装
进入解压后的haproxy-1.8.10里执行:
make TARGET=linux2628 ARCH=x86_64 PREFIX=/home/soft/haproxy
make install PREFIX=/home/soft/haproxy
安装完成后,进入haproxy文件下的sbin里面新建haproxy.cfg文件,并添加配置
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
daemon
nbproc 2
maxconn 51200
pidfile /home/soft/haproxy/sbin/haproxy.pid
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option abortonclose
timeout connect 5000ms
timeout client 30000ms
timeout server 60000ms
balance roundrobin
listen stats
bind *:9080 ##管理页面端口
mode http
option httplog
maxconn 10
stats refresh 30s
stats uri /stats
stats realm Haproxy Manager
stats hide-version
stats admin if TRUE
listen mqtt
bind *:1890 ##mqtt集群入口,也就是其他地方连接emq的端口号
mode tcp
maxconn 50000
option clitcpka
timeout client 3h
timeout server 3h
option tcplog
balance leastconn
server node1 192.168.0.210:1883 check inter 10000 fall 2 rise 5 weight 1 ## node1 node2 node3 为emq集群的节点名称
server node2 192.168.0.211:1883 check inter 10000 fall 2 rise 5 weight 1
server node3 192.168.0.212:1883 check inter 10000 fall 2 rise 5 weight 1
haproxy启动命令:
./haproxy -f haproxy.cfg
6、用MQTT.fx测试
消息推送成功,订阅也可实现,可以尝试关掉某台然后进行详细测试