【服务搭建】EMQ X集群 + nginx做负载

官方提供的集群搭建方式有好几种

策略 说明
manual 手动命令创建集群
static 静态节点列表自动集群
mcast UDP 组播方式自动集群
dns DNS A 记录自动集群
etcd 通过 etcd 自动集群
k8s Kubernetes 服务自动集群
  • manual :(默认就是这个) 优点优雅一些,比如有A服务了,B服务有cookie就可以直接加入集群,不用重启A服务
  • static : 就是A的配置文件里配置B,B的配置文件里配置A 然后新的加进来还得重新配置与重启。不是很优雅。
  • 其他的没有试过所以我就不写了,那些写全的也是去从官网复制的呗。
说明

manual 我试过,一直不通,应该是测试机的安全组的问题,应该今天都改过几次安全组了,所以不想再改了(为什么测试机还要安全组[笑哭])然后我就直接是static,反正提供这么多种方法.
结果用static的直接就通了

建议哈

最好不要直接用static,我是因为很了解公司以及公司项目,集群规模一定不会超过3个,所以选这个问题不大。

开始搭建 (配置文件是emqx.conf,下面就不重复说了)
1 设置服务名称 ( 在12行 )

注意@前随意,后面必须跟实际IP
这个名字需要和下面还有一个节点名称必需相同,这里是个坑哟~~~~
【服务搭建】EMQ X集群 + nginx做负载_第1张图片

2 修改集群策略( 在35行 )

【服务搭建】EMQ X集群 + nginx做负载_第2张图片

3 添加节点( 在61 行 )

原本是注释掉的 去掉 ##
cluster.static.seeds = 随意@IP,随意@IP
本机的也加上而且要和第 1 步里的一样
【服务搭建】EMQ X集群 + nginx做负载_第3张图片

4 当前节点名(在187行 )

和1的配置一样
【服务搭建】EMQ X集群 + nginx做负载_第4张图片

5 设置cookie (在192行) 集群中的所有节点的cookie使用相同的cookie,或者说cookie就是密码

【服务搭建】EMQ X集群 + nginx做负载_第5张图片

6 最后一步 ,设置节点间的通讯端口 (在301行) 注意这些端口的防火墙,安全组什么的都关掉

【服务搭建】EMQ X集群 + nginx做负载_第6张图片

7 重启emqx (别告诉我,我没有说保存退出你就真没保存)

./emqx restart
等两个节点启动完成后查看集群状态

./emqx_ctl cluster status
【服务搭建】EMQ X集群 + nginx做负载_第7张图片

控制台http://任一节点IP:18083/

【服务搭建】EMQ X集群 + nginx做负载_第8张图片

集群完成了

没有负载集群就是傻逼

下面是负载

1下载 ,解压,安装

直接wget http://nginx.org/download/nginx-1.16.1.tar.gz
解压tar -zxvf nginx-1.16.1.tar.gz
编译安装./configure --with-http_stub_status_module --with-http_ssl_module --with-stream --prefix=/opt/nginx 复制这个
make && make install

编辑 nginx的 conf/nginx.conf

stream{
    upstream emqx_cluster {
        server ip:1883;
        server ip:1883;
    }

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

注意:这个配置是和http是平级的,而不是在http里面
我使用的18084代理
【服务搭建】EMQ X集群 + nginx做负载_第9张图片

启动nginx
此时访问80可能是访问不了的
直接使用测试工具连接负载这个机器的18084 ,能连上就说明OK
【服务搭建】EMQ X集群 + nginx做负载_第10张图片

你可能感兴趣的:(服务搭建,nginx,mqtt,emqx集群,nginx负载)