SpringCloud

您所在的位置:网站首页 主机唯一标识符是什么 SpringCloud

SpringCloud

2024-07-12 10:28| 来源: 网络整理| 查看: 265

前言: 1.解释 eureka.instance.hostname 的作用 用于配置主机方式注册到Eureka 2. 默认设置是ip方式注册到Eureka

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

构建项目

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

# 服务名称 spring: application: name: hengboy-spring-cloud-eureka-register-away # 服务提供者端口号 server: port: 20001 # 配置Eureka Server 信息 eureka: client: service-url: defaultZone: http://localhost:10000/eureka/ # 自定义实例编号 instance: instance-id: ${spring.application.name}:${server.port}:@project.version@

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

查看默认方式

我们仍然使用SpringCloud组件:搭建Eureka服务注册中心源码作为服务注册中心(Eureka Server)来完成本章的测试工作。 启动服务注册中心 启动本章项目 访问http://localhost:10000打开服务注册中心管理界面 点击服务列表服务,查看地址栏地址 当我们点击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配置信息即可,如下所示:

# 配置Eureka Server 信息 eureka: client: service-url: defaultZone: http://localhost:10000/eureka/ # 自定义实例编号 instance: instance-id: ${spring.application.name}:${server.port}:@project.version@ # 配置使用主机名注册服务 hostname: node1

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

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

## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost 127.0.0.1 node1 127.0.0.1 node2

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

修改完成主机名后,一定不要忘记是需要让主机名生效的,修改完成后最有效的办法是重启你的计算机可以生效主机名。

接下来我们需要按照下面的步骤进行测试主机名方式注册是否已经生效?

重启本章项目 刷新Eureka Server管理平台界面点击服务名称查看跳转地址

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

配置优先使用IP

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

# 配置Eureka Server 信息 eureka: client: service-url: defaultZone: http://localhost:10000/eureka/ # 自定义实例编号 instance: instance-id: ${spring.application.name}:${server.port}:@project.version@ # 配置使用主机名注册服务 hostname: node1 # 优先使用IP地址方式进行注册服务 prefer-ip-address: true

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

注意:如果配置ip-address参数后并没有开启prefer-ip-address: true,那么仍然使用主机名或者默认的注册方式。

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3