今天部署1套新的环境,nacos由运维部署完成,提供了3个端口
30820
31558
32239
启动的时候提示
[Nacos Config] config[dataId=redis.yml, group=DEFAULT_GROUP] is empty
我再三确认页面上确实已经配置好了
于是开启debug
-401 Client not connected, current status:STARTING
于是在logback.xml中开启debug模式
控制台提示
Server check fail, please check server 172.16.63.85 ,port 31820 is available
于是奇怪的地方开始了,我没有配置31820。服务器的nacos也没有暴露这个端口。这个是哪里来的呢
debug找到port设置的地方
rpcPortOffset()
有2个实现
java
//GrpcClusterClient
@Override
public int rpcPortOffset() {
return Integer.parseInt(System.getProperty(
NACOS_SERVER_GRPC_PORT_OFFSET_KEY, NACOS_SERVER_GRPC_PORT_DEFAULT_OFFSET));
}
//GrpcSdkClient
@Override
public int rpcPortOffset() {
return Integer.parseInt(System.getProperty(
NACOS_SERVER_GRPC_PORT_OFFSET_KEY, NACOS_SERVER_CLUSTER_GRPC_PORT_DEFAULT_OFFSET));
}
尝试telnet
发现
开发环境端口是根据rpc偏移端口来的
演示环境端口是运维自己变动导致。
于是申请让运维变更端口解决。或者自己修改环境变量(不推荐)
protected static final String NACOS_SERVER_GRPC_PORT_OFFSET_KEY = "nacos.server.grpc.port.offset";