nacos 如何在spring boot中自定义gRPC链接端口号

1. 问题

在最近的开发中,因为系统为分布式的系统,然后将nacos部署在docker里面,然后通过spring boot程序启动时,无法拉取到配置信息。

2. 分析

  • 在配置时,是否因为group或者dataId填写错误,导致拉去不到配置信息
  • 命名空间是否设置正确
  • 用户名和密码是否正确
  • 是否能够通过nacos的8848端口访问后端管理台

3. 排查

以上问题在排查过后,都发现没有问题,因为配置文件是从其他环境直接拷贝过来,并且在其他环境运行正常。所以只能从其他方向查找。

4. 解决问题

通过查询资料,得到以下信息:

4.1 nacos监听端口

nacos在新版本中,采用的是gRPC连接,在nacos启动的时候默认会启动两个端口,8848​和9848​。这两个端口一个是用作后端控制台管理,一个适用于gRPC链接的端口号。

4.2 docker中如何操作

docker在启动的时候,可以通过-p 8848:8848​进行端口映射,这里就需要将9848​端口也需要映射出来

4.3 安全策略

如果跑在云服务器上或者有防火墙,则需要将映射在主机上的端口号放开,让对应端口号能够通过服务器IP访问

4.4 程序配置

在spring boot环境中,nacos客户端的启动是不能配置gRPC链接进行配置,而是通过端口偏移量来控制gRPC链接的端口好,默认为1000​。也就是说,如果nacos配置的管理台密码为8848​,那么gRPC链接的端口号就是9848​。 一次类推。

因此,在我们确认了nacos对应服务器端口号之后,可以通过-Dnacos.server.grpc.port.offset=<偏移量数值>​来控制偏移量, 通过这种方式推算出gRPC链接端口号。

以上内容来自如何设置nacos客户端连接服务端时使用的grpc端口的默认偏移量. 可以参考官方文档

 

Leave a Comment

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注