导语
之前的分享中,简单的介绍了SpringBoot的入门知识以及如何使用Eureka搭建服务注册中心,这一次的分享主要是来讲解一些在Eureka中的常用的配置,方便大家在使用Eureka的时候可以更好的利用它的一些特性
常用配置
关闭Eureka自我保护
Eureka的保护模式主要在一组客户端和Eureka Server之间存在网络上的分区场景时使用。一旦进入到保护模式,Eureka Server将会尝试保护器服务注册表中的信息,不再删除服务注册表中的信息,当网络恢复的时候,Eureka Server 节点会自动进行退出自我保护功能。而这个自我保护功能可以通过如下的配置来进行关闭
eureka:
server:
enableSelfPreservation: false
实现自定义InstanceID
客户端在注册服务的时候,服务对应的InstanceID对应是如下的一种格式
${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${server.port}}
也就是主机名,服务名,服务端号等信息。当我们在Eureka的Web页面上看到的内容就是这个格式的,但是在很多的应用场景中,运维人员需要把对应的IP显示的上面这个格式中,那么这个时候只需要把主机名替换成IP即可,或者是调整顺序也可以。这个时候就可以通过如下的方式来定义
eureka.instance.instance_id=${spring.application.name}:${spring.cloud.client.ip-address}${server.port}
通过上面的定义之后就可以看到我们想要的结果了,当然还可以点击对应的InstanceID进行跳转,这个时候虽然对应的主机名已经变成了IP但是对应的的连接还是主机名。并不是我们想要的样子,这个时候就需要加入一个配置
eureka:
instance:
perferIpAddress: true
通过上面的配置就可以将对应的连接变成我们想要的IP的形式了。
如何快速移除已经失效的服务信息
在实际的开发过程中,可能会不停的重新启动或者停止服务,这个时候由于Eureka的自我保护机制,当停止的服务下线之后,服务信息还会一直存在于Eureka中,可以通过增加一些配置来让移除这些故障节点的速度快一些。但是在生产上并不推荐使用这种方式
//关闭自我检查
eureka.server.enable-self-preservation=false
// 清理时间间隔
eureka.server.eviiction-interval-timer-in-ms=5000
在客户端对应的配置如下
eureka.client.healthcheck.enable=true
// Eureka Client 而server发送心跳的频率
eureka.instance.lease-renewal-interval-in-seconds=5
// 心跳等待时间
eureka.instance.lease-expiration-duration-in-seconds=5
其中要配置健康检查相关的内容需要在pom文件中加入对应的actuator相关的依赖。
总结
内容较少,用来补充上篇博客中最后的一些信息。