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端口

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值