因为安全原因,在部署nacos-2.2.3版本时,将nacos的application.properties中的server.port端口值由默认值8848改成了server.port=8425
问题:nacos 启动时(sh start.sh -m standalone)报错
如下:
经过分析,原因是 9425 端口已经被占用了。
然后翻遍了nacos的所有配置项,均为发现9425端口配置,不得已,去分析其源码。
关键源码如下:
可知:rpcPortOffset() 方法返回了一个偏移量,偏移量细分成了 SDK_GRPC_PORT_DEFAULT_OFFSET 与 CLUSTER_GRPC_PORT_DEFAULT_OFFSET 两个静态Integer类型,分别为1000 和 1001
这样,问题得到解释:8425 + 1000 = 9425
解决方案:修改 server.port 为一个此服务器上少用的端口
实现 server.port + 1000 或者 server.port + 1001 后与此服务器其他进程端口不冲突。
思考
在一个基本端口上经过偏移量设置,实现服务相关的端口设置,这样处理起来确实很便捷,而且易于推导服务端口设置。但是服务不给出端口设置的入口,这样在对端口资源有要求和管控的环境下,会带来不便之处。后续设计系统时,需要多考虑一下。