服务器IP
部署业务
作用
192.168.0.41
EMQTTD
EMQ集群
192.168.0.75
EMQTTD
EMQ集群
192.168.0.41
haproxy、keepalived
HA和LB
192.168.0.75
haproxy、keepalived
HA和LB
Haproxy和Keepalived以及EMQ都放在同一台机器,每一个机器上都有一个MEQ、Haproxy、Keepalived,其实可以把Haproxy、Keepalived单独弄两台机器,每台机器上放一个Haproxy、Keepalived,切记Haproxy和Keepalived必须放在同一台机器上,然后Haproxy负载到不同的EMQ机器上即可,但是我用来部署的机器没那么多,只能放在一起了,有条件的朋友可以自己试试分开的,其实都一样。
环境:Cetos7,EMQ2.3.11
1.4.1、两台机器都需要进行一下配置,如果将EMQ和Haproxy、Keepalved分开机器放,那么每个机器都要配置。
关闭防火墙,关闭开机启动:
systemctl stop firewalld.service #关闭防火墙
systemctl disable firewalld.service #防火墙开机不启动
关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
重启服务器
shutdown -r now
1.4.2、修改操作系统内核参数
修改完毕通过sysctl –p 生效
我之前写过EMQ安装的文章,分别使用通用包、源码编译安装,这里就不再讲了,自己去看看。
传送门:Linux下用EMQ通用包安装EMQ、Linux下用源码编译安装EMQ
进入emqx-rel-2.3.11/_rel/emqttd/etc/emq.conf中
sed -i 's%^node.process_limit = .*%node.process_limit = 2097152%g' emq.conf
sed -i 's%^node.max_ports = .*%node.max_ports = 1048576%g' emqttd/emq.conf
sed -i 's%^listener.tcp.external.acceptors = .*%listener.tcp.external.acceptors = 64%g' emq.conf
sed -i 's%^listener.tcp.external.max_clients = .*%listener.tcp.external.max_clients = 1000000%g' emq.conf
2.3.1、节点设置,修改emqx-rel-2.3.11/_rel/emqttd/etc/emq.conf文件中的节点名以及集群名
一共两种方式:进入emqx-rel-2.3.11/_rel/emqttd/etc/emq.conf
通过vim修改,cluster.name = emqcl,node.name = emq@192.168.0.41; (192.168.0.41)
cluster.name = emqcl,node.name = emq@192.168.0.75; (192.168.0.75)
或者通过命令直接修改值
192.168.0.41:
sed -i 's%^node.name = .*%node.name = emq@192.168.0.41%g' emq.conf
sed -i 's%^cluster.name = .*%cluster.name = emqcl%g' emq.conf
192.168.0.75:
sed -i 's%^node.name = .*%node.name = emq@192.168.0.75%g' emq.conf
sed -i 's%^cluster.name = .*%cluster.name = emqcl%g' emq.conf
2.3.2、加入集群
在192.168.0.41的emqx-rel-2.3.11/_rel/emqttd/bin下运行/emqttd_ctl cluster join emq@192.168.0.75
或者在192.168.0.75的emqx-rel-2.3.11/_rel/emqttd/bin下运行/emqttd_ctl cluster join emq@192.168.0.41
注:节点启动加入集群后,节点名称不能变更。若更改了节点名称或者集群名,重启emq服务,https://blog.csdn.net/xiaoye319/article/details/emqttd_ctl console,
https://blog.csdn.net/xiaoye319/article/details/emqttd_ctl start。若重启服务还是无效,则重启服务器,shutdown -r now
2.3.3、查看集群状态
在任何一个节点的emqx-rel-2.3.11/_rel/emqttd/bin下运行/emqttd_ctl cluster status
2.3.4、退出集群,有两种方式:
leave: 本节点退出集群
remove: 从集群删除其他节点
在192.168.0.41的emqx-rel-2.3.11/_rel/emqttd/bin下运行https://blog.csdn.net/xiaoye319/article/details/emqttd_ctl cluster leave
或者在192.168.0.41的emqx-rel-2.3.11/_rel/emqttd/bin下运行https://blog.csdn.net/xiaoye319/article/details/emqttd_ctl cluster remove emq@192.168.0.75
安装完haproxy以后,默认生成/etc/haproxy/haproxy.cfg,因为本身生成的,有其自带的东西,最好删除了,再运行以下命令重建。
注:这里有个问题,如果你的haproxy、keepalived和emq是放在同一个机器上的,haproxy的配置文件中bind绑定的端口号不要跟EMQ的一样,不然haproxy启动报错。如果不是同一台机器上的,那就尽量端口一样。
设置开机启动:chkconfig haproxy on
3.5、 优化Haproxy服务器
修改完毕通过sysctl –p 生效
安装完keepalived以后,默认生成/etc/keepalived/keepalived.cfg,删除该文件,再运行以下命令重建。
主的keepalived.cfg:
备的keepalived.cfg:
设置开机启动:systemctl enable keepalived
此架构采用keepalived作为高可用性,haproxy作为负载均衡。
分别在41和75机器上执行ip a,可以看出vip 192.168.0.76在75机器上
关闭75机器上的keepalived,然后执行ip a
然后在41机器上执行ip a,可以看出41已经接管VIP了
打开haproxy web管理页面,192.168.0.76:8082/admin,登录账号密码都是admin,admin,这些都在haproxy.cfg文件中,可以自己修改。
然后用jmeter进行EMQ的连接虚拟vip:192.168.0.76:1885进行连接测试,看是否进行了负载,测试过程请看:JMeter测试EMQ集群
可以看到已经成功。
有问题的同学可以及时沟通我。。。。。。
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://www.ksxb.net/tnews/1886.html
下一篇
好的英文座右铭经典汇总