SpringCloud组件:Eureka服务注册是采用主机名还是IP地址?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud组件:Eureka服务注册是采用主机名还是IP地址?相关的知识,希望对你有一定的参考价值。

参考技术A 我们一直在使用 Eureka 进行注册服务,然而你有可能很少关心 服务 在注册到 Eureka Server 时是采用的 主机名 的方式?还是 IP地址 的方式?

我们把之前章节 SpringCloud组件:将微服务提供者注册到Eureka服务中心 的源码复制一份修改项目名称为 hengboy-spring-cloud-eureka-register-away ,并简单的对 application.yml 配置文件进行修改,如下所示:

在上面配置中,并没有对注册方式进行任何修改,如果现在启动当然就是采用的默认方式进行注册,接下来我们来看看默认的方式是采用的哪种?

我们仍然使用 SpringCloud组件:搭建Eureka服务注册中心 源码作为 服务注册中心 (Eureka Server)来完成本章的测试工作。

当我们点击 hengboy-spring-cloud-eureka-register-away:20001:v1.0 服务名称后会跳转到服务的 监控信息 界面,不过我们并没有添加 监控 相关的依赖或者配置,所以这里跳转后是 404 访问不到页面,即使是这样我们还是可以看到跳转的网址是 http://192.168.1.75:20001/actuator/info ,这也证实了一点 Eureka Client 向 Eureka Server 进行注册的时候默认采用的是 IP Address 方式。

那么如果你想采用主机名的方式进行 注册服务 ,该怎么配置呢?请继续阅读。

我们如果采用主机名的方式进行 注册服务 ,只需要修改 application.yml 配置文件内的 eureka.instance.hostname 配置信息即可,如下所示:

node1 是我本机配置的其中一个主机名

我是采用的 MAC OS X 系统作为运行环境,所以修改 /etc/hosts 文件对应的添加 主机名 、 IP 地址的映射即可,如下所示:

如果你是采用的 Windows 系统作为运行环境,你可以修改 C:\Windows\System32\drivers\etc\hosts 文件内容并添加映射关系。

我们可以发现跳转的路径由原本默认的 http://192.168.1.75:20001/actuator/info 方式修改成了 http://node1:20001/actuator/info ,可以看到已经是使用了 主机名 的方式进行的 注册服务 !!!

如果你在部署的时候某种原因导致的无法使用 主机名 方式进行部署,当然你可以选择不配置 eureka.instance.hostname 参数,如果你配置后仍然想使用 IP Address 方式进行 服务注册 ,这时我们可以通过 eureka.instance.prefer-ip-address 参数来进行设置,如果该参数设置为 true ,则 优先使用IP Address 进行 服务注册 。
配置如下所示:

既然我们可以 优先使用IP 进行 注册服务 ,我们想根据 指定的IP地址 进行注册该怎么配置呢?

配置使用 指定IP 也比较简单,我们可以进行设置 eureka.instance.ip-address 参数的值来进行修改注册的 IP 地址 。
我们基于上面步骤的配置文件进行修改内容如下所示:

配置文件修改完成后,进行如下步骤进行测试是否失效:

我们发现跳转地址栏的地址已经使用了我们配置的 ip-address 参数,地址为: http://127.0.0.1:20001/actuator/info 。

我们通过几种不同的 服务注册方式 来全面讲解了 Eureka Client 在注册到 服务注册中心 时使用的主机信息,这几种注册方式也是存在一定的 优先级顺序 的,这一知识点我们在下一章结合 Eureka 源码进行分别全面剖析这几种 注册方式 以及 优先级顺序 。

本章源码已经上传到恒宇少年的 码云 ,请结合源码进行学习,感谢阅读。

以上是关于SpringCloud组件:Eureka服务注册是采用主机名还是IP地址?的主要内容,如果未能解决你的问题,请参考以下文章

springCloud - Eureka

springCloud之服务注册Eureka

服务注册组件eureka

微服务架构SpringCloud之Eureka(服务注册和服务发现基础篇)

微服务架构SpringCloud之Eureka(服务注册和服务发现基础篇)

SpringCloud实战微服务之——服务发现与服务注册-Eureka的简单使用