Spring Cloud 微服务实战系列-Eureka注册中心(二)

导语
  之前的分享中,简单的介绍了SpringBoot的入门知识以及如何使用Eureka搭建服务注册中心,这一次的分享主要是来讲解一些在Eureka中的常用的配置,方便大家在使用Eureka的时候可以更好的利用它的一些特性

文章目录

    • 常用配置
      • 关闭Eureka自我保护
      • 实现自定义InstanceID
      • 如何快速移除已经失效的服务信息
    • 总结

常用配置

关闭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相关的依赖。

总结

  内容较少,用来补充上篇博客中最后的一些信息。

你可能感兴趣的:(Spring,Cloud实战,运维,linux,网络,java)