概述:
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转发文章来源:https://www.toymoban.com/news/detail-491481.html
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 连过来两个客户端,平均分不到两个实例上。文章来源地址https://www.toymoban.com/news/detail-491481.html
到了这里,关于EMQX 的集群搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!