0


nacos客户端注册失败问题

问题现象:

项目采用类似以下方式进行部署,共5台服务器,每台服务器分别部署一个服务,各服务器之前端口需要单独开通,client A 和client B 是不同的服务。

当时出现的现象是client A可以注册成功,但client B一直注册失败。如果把nacos服务端放到 client B的服务器上,client B又可以注册成功

这时候怀疑是nacos服务端的网络端口没开放给client B服务器导致注册不上去,但用telnet 试了下8848端口是通的,而nacos服务端开放给client A的端口与client B的端口是一致的。

网络端口开通情况:
1.nacos server 开放 8848端口 给 client A
2.nacos server 开放 8848端口 给 client B

在这里插入图片描述

原因分析与解决:

后面在排查中发现,果然还是服务器端口没开放导致的。
各服务nacos的版本:
服务nacos版本nacos server2.*nacos client A1.nacos client B2.
原因就是客户端版本不一致导致出现了前面的场景,具体原因如下:

  • clientA由于版本是1.*的,开通8848端口就能直接注册成功
  • clientB由于版本是2.*的,开通8848端口还不能注册成功,还需要开通9848端口

在nacos服务端开放9848端口给client B后,完美解决问题。

下面看下nacos 1.* 和 nacos 2.* 部署的区别。

  • nacos客户端使用2.* 版本,那nacos服务端也需要使用2.* 版本。
  • nacos2.* 版本相比1.* 新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。
    端口与主端口的偏移量描述98481000客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求98491001服务端gRPC请求服务端端口,用于服务间同步等

使用VIP/nginx请求时,需要配置成TCP转发,不能配置http2转发,否则连接会被nginx断开。

以下是nacos官网关于2.*版本的一张图,从图中可以看出:

  • 客户端与服务端需开通8848,9848端口
  • 服务端之间需要开通8848,7848,9849端口

在这里插入图片描述

标签: 服务器 运维 java

本文转载自: https://blog.csdn.net/pushen3584/article/details/129228161
版权归原作者 chanccx 所有, 如有侵权,请联系我们删除。

“nacos客户端注册失败问题”的评论:

还没有评论