spring-cloud-alibaba icon indicating copy to clipboard operation
spring-cloud-alibaba copied to clipboard

feat(nacos): nacos support hostname

Open jackxu2011 opened this issue 3 years ago • 10 comments

Describe what this PR does / why we need it

support the nacos to register service with hostname

Does this pull request fix one issue?

releated issue #1403

Describe how you did it

  1. nacos NacosDiscoveryProperties.java add preferIpAddress property
  2. if ! preferIpAddress, transfer ip to hostname

Describe how to verify it

Special notes for reviews

jackxu2011 avatar Nov 11 '22 08:11 jackxu2011

By the way, please modify relevant document in examples and docs module.

steverao avatar Nov 24 '22 01:11 steverao

By the way, please modify relevant document in examples and docs module.

ok

jackxu2011 avatar Nov 24 '22 05:11 jackxu2011

@steverao I want to have the effect like this. image set the preferIpAddress false, the nacos instance's IP to be hostname

jackxu2011 avatar Nov 24 '22 05:11 jackxu2011

我试图理解一下你的场景,

  1. 你编辑了服务器的host文件,增加了hostname配置
  2. SCA这边的服务注册默认是读取的服务器第一个回环地址进行注册,未读取到你服务器host文件配置的hostname进行注册

如果是这样的场景,与其你每台服务器都去修改服务器host文件,不如用spring.cloud.nacos.discovery.ip这个配置项进行系统环境变量来配置是不是也可以达到你想要的效果?

yuhuangbin avatar Nov 24 '22 13:11 yuhuangbin

我试图理解一下你的场景,

  1. 你编辑了服务器的host文件,增加了hostname配置
  2. SCA这边的服务注册默认是读取的服务器第一个回环地址进行注册,未读取到你服务器host文件配置的hostname进行注册

如果是这样的场景,与其你每台服务器都去修改服务器host文件,不如用spring.cloud.nacos.discovery.ip这个配置项进行系统环境变量来配置是不是也可以达到你想要的效果?

这个不只是改hostname的场景,k8s里,ip会变,而同一个服务的hostname是不会变的。还有不同的环境,hostname在系统初始化的时候是可以定好的,但是ip地址是不一样的。这个只是个别场景会用到。第次部署的时候都是设置discovery.ip就很麻烦。

jackxu2011 avatar Nov 24 '22 13:11 jackxu2011

我试图理解一下你的场景,

  1. 你编辑了服务器的host文件,增加了hostname配置
  2. SCA这边的服务注册默认是读取的服务器第一个回环地址进行注册,未读取到你服务器host文件配置的hostname进行注册

如果是这样的场景,与其你每台服务器都去修改服务器host文件,不如用spring.cloud.nacos.discovery.ip这个配置项进行系统环境变量来配置是不是也可以达到你想要的效果?

这个不只是改hostname的场景,k8s里,ip会变,而同一个服务的hostname是不会变的。还有不同的环境,hostname在系统初始化的时候是可以定好的,但是ip地址是不一样的。这个只是个别场景会用到。第次部署的时候都是设置discovery.ip就很麻烦。

环境变量配置spring.cloud.nacos.discovery.ip=hostname 是否可以?

yuhuangbin avatar Nov 25 '22 02:11 yuhuangbin

我试图理解一下你的场景,

  1. 你编辑了服务器的host文件,增加了hostname配置
  2. SCA这边的服务注册默认是读取的服务器第一个回环地址进行注册,未读取到你服务器host文件配置的hostname进行注册

如果是这样的场景,与其你每台服务器都去修改服务器host文件,不如用spring.cloud.nacos.discovery.ip这个配置项进行系统环境变量来配置是不是也可以达到你想要的效果?

这个不只是改hostname的场景,k8s里,ip会变,而同一个服务的hostname是不会变的。还有不同的环境,hostname在系统初始化的时候是可以定好的,但是ip地址是不一样的。这个只是个别场景会用到。第次部署的时候都是设置discovery.ip就很麻烦。

环境变量配置spring.cloud.nacos.discovery.ip=hostname 是否可以?

发布多个服务,还要改设置不同的值,这个主要是为了配置方便。直接设置当然可以解决问题

jackxu2011 avatar Nov 25 '22 02:11 jackxu2011

@steverao 我重新整理了一下代码,这个pr的目的是用hostname去注册service. nacos原来是用ip注册的,所以我改了一下配置的名称。你看一下是否ok

jackxu2011 avatar Nov 26 '22 08:11 jackxu2011

@steverao 我重新整理了一下代码,这个pr的目的是用hostname去注册service. nacos原来是用ip注册的,所以我改了一下配置的名称。你看一下是否ok

我们目前其实,可以通过spring.cloud.nacos.discovery.ip=alibaba.com去注册域名。感觉意义不是特别大,如果想参与社区贡献,可以加我钉钉steverao2021. image

steverao avatar Nov 28 '22 02:11 steverao

@steverao 我重新整理了一下代码,这个pr的目的是用hostname去注册service. nacos原来是用ip注册的,所以我改了一下配置的名称。你看一下是否ok

我们目前其实,可以通过spring.cloud.nacos.discovery.ip=alibaba.com去注册域名。感觉意义不是特别大,如果想参与社区贡献,可以加我钉钉steverao2021. image

这样是可以实现,我上面也说了,可以这样配置,主要是配置不太方便。有些情况下,还只能用domain, 每个服务都设置,就不如直接设置hostname方便。刚加了你钉钉。

jackxu2011 avatar Nov 28 '22 15:11 jackxu2011