栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

EMQX 的集群搭建

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

EMQX 的集群搭建

概述:
EMQX 集群配置 的搭建有几种方式,现在我们是所说是有两种方式,一种是静态方式,一种是动态方式。

环境准备:

由于条件有限我们准备了两台虚拟机。
192.168.31.159 centOS7
192.168.31.93 centOS7
分别安装 emqx-4.4.3-otp24.1.5-3-el7-amd64.zip 解压

第一种实现 static 方式

修改 etc/emqx.conf 文件
93 节点上

# 修改集群模式为 static
cluster.discovery = static
# 设置节点发现列表
cluster.static.seeds = emqx@192.168.31.93 ,emqx@192.168.31.159
# 设置节点名称,请注意,节点标识必须和上面节点发现列表中的一致,否则将无法实现集群节点发现
node.name = emqx@192.168.31.93

159 节点上

# 修改集群模式为 static
cluster.discovery = static
# 设置节点发现列表
cluster.static.seeds = emqx@192.168.31.93 ,emqx@192.168.31.159
# 设置节点名称,请注意,节点标识必须和上面节点发现列表中的一致,否则将无法实现集群节点发现
node.name = emqx@192.168.31.159

我们启动集群中的每个节点

emqx restart
第二种实现 manual方式

修改配置文件

vim emqx/etc/emqx.conf
EMQ X默认配置中启用了匿名认证  生产环境中请禁用匿名认证。
allow_anonymous = false 不允许匿名访问
node.name = emqx@192.168.31.93

allow_anonymous = false
node.name = emqx@192.168.31.159

执行加入命令

在93上执行 93加入到159的集群
./bin/emqx_ctl cluster join emqx@192.168.31.159
查看状态
./bin/emqx_ctl cluster status

通过管理页面查看集群

验证集群发布与订阅

在159 客户端连上,发送消息

在93 客户端连上,接受消息

这样就说明了无论你连接到那个服务节点,都可以进行数据的发送和接收,所以这样就完成了集群的部署,并验证集群的有效性。

nginx 代理配置

集群搭建完后,我们需要一个提供一个外部的统一的入口。集群通常是部署在内网的,不具备外网 IP,即使外网 IP 可知,让客户端一次性保存所有节点的 IP 也是不现实的,因为节点可能动态横向扩展并。除此之外,我们需要平衡客户端的访问流量,也就是需要做负载均衡。

Nginx的安装与配置

在159上安装nginx

安装nginx
yum install -y nginx
systemctl enable nginx
systemctl start nginx
安装 tcp层的转发,通过stream实现的
yum install nginx-mod-stream -y

配置 nginx 负载均衡

请注意,stream配置不能放到http内,即不能放到/etc/nginx/conf.d/,因为stream是通过tcp层转发,而不是http转发

stream {
  # 轮询负载均衡配置
  upstream emqx_cluster {
      server 192.168.31.93:1883 weight=1;
      server 192.168.31.159:1883 weight=1;
  }
  server {
      # 监听 8884 端口
      listen 8884;
      # 反向代理到 emqx_cluster
      proxy_pass emqx_cluster;
      proxy_buffer_size 4k;
      #ssl_handshake_timeout 15s;
      # 证书配置
      #ssl_certificate     /etc/nginx/cert/nginx.pem;
      #ssl_certificate_key /etc/nginx/cert/nginx.key;
  }
}

创建两个客户端:


可以看到他们通过nginx 连过来两个客户端,平均分不到两个实例上。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/867498.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号