原因:当nacos客户端升级为2.x版本后,新增了gRPC的通信方式,新增了两个端口。这两个端口在nacos原先的端口上(默认8848),进行一定偏移量自动生成。
端口 | 与主端口的偏移量 | 描述 |
---|---|---|
9848 | 1000 | 客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求 |
9849 | 1001 | 服务端gRPC请求服务端端口,用于服务间同步等 |
解决
#开启防火墙
systemctl start firewalld
#开放9848端口
firewall-cmd --zone=public --add-port=9848/tcp --permanent
#使配置生效
firewall-cmd --reload
#查看所有端口
firewall-cmd --zone=public --list-ports
Nacos 2.x默认使用的端口为8848(HTTP管理端口)、9848(客户端gRPC请求服务端端口)和9849(服务端gRPC请求服务端端口)。客户端在连接时,虽然主要配置的是管理端访问端口8848,但实际上客户端会根据服务端的配置自动计算其他端口进行通信。
如果您希望直接配置客户端连接除8848以外的其他两个端口(例如直接配置gRPC端口9848或9849),这通常是不必要的,因为Nacos客户端设计上会自动根据服务端的主端口计算gRPC端口。但是,如果您有特殊需求想要显式地配置这些端口,可以考虑以下方法:
对于客户端gRPC端口配置:
-
Nacos客户端允许通过JVM参数调整gRPC端口的偏移量。例如,如果服务端的主端口保持默认的8848,但您希望客户端使用不同于默认偏移量的gRPC端口,可以在启动客户端应用时设置JVM参数:
-D nacos.server.grpc.port.offset=自定义偏移量
根据您的需求,如果想要直接指定gRPC端口而不是通过偏移量,这种方式可能不直接适用,因为Nacos客户端设计上是基于主端口和偏移量计算其他端口的。