EMQ集群部署并使用Nginx实现负载均衡

一、准备工作

三台服务器或者虚拟机(141、142、143)。

二、单机部署

三台虚拟机分别进行单机部署:

$ cd /usr/local
$ unzip emqx-centos7-v3.1.0.zip

启动EMQX

$ cd /usr/local/emqx
$ ./bin/emqx start
emqx 3.1.0 is started successfully!
 
$ ./bin/emqx_ctl status
Node '[email protected]' is started
emqx v3.1.0 is running

访问 http://xxx.xxx.xxx.xxx:18083,默认用户名: admin,密码:public,如图所示:
在这里插入图片描述

三、EMQ集群搭建

首先我们先搞两台机器,然后我们在两台机器上启用以下端口

1883 MQTT 协议端口
8883 MQTT/SSL 端口
8083 MQTT/WebSocket 端口
8080 HTTP API 端口
18083 Dashboard 管理控制台端口

接下来修改一下EMQX的配置文件

vim ./etc/emqx.conf

修改以下内容,改成各自本机ip

node.name = [email protected]
node.name = [email protected]
node.name = [email protected]

另外统一配置文件中集群名称,这里集群名称必须一致,否则不能加入集群显示无响应

 cluster.name = emqx

修改完成之后,启动两台节点后,192.168.72.142和192.168.72.143上分别执行

./bin/emqx_ctl cluster join [email protected]
./bin/emqx_ctl cluster join [email protected]

任意节点上查询集群状态:

./bin/emqx_ctl cluster status

然后我们访问 http://192.168.72.141:18083,我们会发现三个节点已经成功运行了,如图所示:
v

扫描二维码关注公众号,回复: 11780538 查看本文章

四、使用nginx配置负载均衡

1)、安装nginx的依赖包

# 解决依赖包openssl安装
sudo apt-get install openssl libssl-dev

# 解决依赖包pcre安装
sudo apt-get install libpcre3 libpcre3-dev

# 解决依赖包zlib安装
sudo apt-get install zlib1g-de

2)、下载nginx

# 下载nginx(到官网查看对应版本)
wget http://nginx.org/download/nginx-1.13.1.tar.gz
# 解压文件到/opt目录下
tar -xzvf nginx-1.13.1.tar.gz -C /opt

3)、安装nginx

# 到安装目录下,编译过程中开启 --with-stream,tcp转发必须模块,因为emqx转发的是tcp连接
./configure --with-http_stub_status_module --with-http_ssl_module --with-stream --prefix=/opt/nginx
make && make install

4)、编辑nginx配置文件,用nginx 8000端口代理emq1883端口

#user  nobody;
worker_processes  1;
#worker_rlimit_nofile 90000;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    
    
    worker_connections  1024;
}

stream{
    
    
    upstream emqx_cluster {
    
    
    	#轮询
        server 192.168.72.141:1883;
        server 192.168.72.142:1883;
        server 192.168.72.143:1883;
    }

    server{
    
    
       listen  18084 so_keepalive=on;
       proxy_connect_timeout 10s;
       proxy_timeout 20s;
       proxy_pass emqx_cluster;

      # ssl_handshake_timeout 15s;
      #ssl_certificate     /export/softwares/emqx/etc/certs/cert.pem;
      #ssl_certificate_key /export/softwares/emqx/etc/certs/key.pem;
    }
}

5)、启动nginx

./nginx

五、负载均衡测试

./emqtt_bench sub -h 192.168.72.141 -p 8000 -c 300 -i 1 -t bench /%i -q 1

在这里插入图片描述

六、系统调优与压力测试

参考官方文档:
1、EMQ系统调优
2、EMQ性能测试

猜你喜欢

转载自blog.csdn.net/weixin_44455388/article/details/108709958