环境信息
- EMQ X 版本:
4.3.3 - 操作系统及版本:
centos7.5 - 其他
问题描述
1、做了 “分布集权” 和 “nginx负债均衡”,测试时候,发订阅和发布到A服务器,可以收到数据,但是B服务器收不到数据。然后我尝试关闭A服务器的服务,B服务器可以收到数据。这是正常的吗?
2、如果我不关闭A服务器,是不是B服务器永远收不到 客户端发过来的请求数据?
3、nginx负债均衡不是轮询分别发送数据到两个节点吗?例如隔1秒分发到另个节点。
配置文件及日志
A、B服务器已经建立分布集群:
# emqx_ctl cluster status
Cluster status: #{running_nodes => ['emqx@192.168.31.13','emqx@192.168.31.14'],
stopped_nodes => []}
nginx配置如下:
user nginx nginx;
worker_processes auto;
worker_rlimit_nofile 1024000;
pid /var/run/nginx.pid;
events {
use epoll;
worker_connections 1024000;
}
stream {
#1 mqtt 正式环境
# 添加mqtt转发的代理
upstream mqtt {
zone tcp_servers 64k;
hash $remote_addr consistent;
# 转发的目的地址和端口
server 192.168.31.13:1883 max_fails=3 fail_timeout=30s;
server 192.168.31.14:1883 max_fails=3 fail_timeout=30s;
}
# 提供转发的服务,即访问localhost:83,会跳转至代理mqtt指定的转发地址
server {
listen 83;
proxy_buffer_size 4k;
proxy_pass mqtt;
}
}