关闭 Eureka Server 的自我保护

如果 Eureka Client 关了,Eureka Server 会自动注销该实例,也可以通过命令关闭 (=> 注销 Eureka 服务 )。
但是如果实例的总数比较少,比如开发时一般只有一个实例,此时并不会自动从 Eureka Server 中注销,Eureka Server 会默认开启自我保护,自我保护状态下不会删除任何实例。

通过修改 Eureka Server 的配置文件(application.yml)可以关闭自我保护。

注销 Eureka 服务

默认当 Eureka Server 连续 3 次(默认心跳间隔是 30s)没有收到该服务的心跳时,会自动将该实例注销(进入自我保护模式时除外)。
但是也可以通过手动发送 DELETE 请求到 Eureka Server 来注销服务实例。

格式如下:

curl -v -X DELETE http://{Eureka Server 地址}/eureka/apps/{Application 名}/{Eureka 实例的 ID}
配置仅消费不提供服务的 Eureka Client

不需要注册自身到 Eureka 服务器时可以将 register-with-eureka 设置为 false

反之,如果仅提供服务,不需要消费其它服务时,可以将 fetch-registry 设置为 false

server:
  port: 20001
eureka:
  instance:
    hostname: server1
  client:
    # 表示是否注册自身到 eureka 服务器
    register-with-eureka: false
    # 是否从 eureka 上获取注册信息
    # fetch-registry: false
    service-url:
      defaultZone: http://server2:20002/eureka/