部署了集群与负载均衡后,不在相同节点无法通信




如上图所示,我有两个客户端想要进行通信,但是因为使用了集群与nginx的负载均衡,在进行通信的时候如果两个客户端没有分布在相同节点下的时候,他们就无法进行通信;目前是使用共享订阅来处理消息接收的问题。但是因为有一个节点是在外面的设备,无法修改为共享订阅,需要如何让不同节点间的设备进行互相访问。

对应的nginx配置:

stream {

  upstream mqtt_tcp_server {
      zone tcp_servers 64k;
      # hash $remote_addr;
      # least_conn;
      server 127.0.0.1:1884 max_fails=2 fail_timeout=30s;
      server 192.168.20.2:1883 max_fails=2 fail_timeout=30s;
  }

  server {
      listen 1883;

      #status_zone tcp_server;
      proxy_pass mqtt_tcp_server;
      proxy_connect_timeout 150s;
      proxy_buffer_size 3M;
      proxy_timeout 150s;
      proxy_protocol on;

      set_real_ip_from 192.168.20.7;
      tcp_nodelay on;
      
  }
  
}

防火墙端口没开放导致。。。