如果 Eureka Client 关了,Eureka Server 会自动注销该实例,也可以通过命令关闭 (=> 注销 Eureka 服务 )。
但是如果实例的总数比较少,比如开发时一般只有一个实例,此时并不会自动从 Eureka Server 中注销,Eureka Server 会默认开启自我保护,自我保护状态下不会删除任何实例。
通过修改 Eureka Server 的配置文件(application.yml)可以关闭自我保护。
如果 Eureka Client 关了,Eureka Server 会自动注销该实例,也可以通过命令关闭 (=> 注销 Eureka 服务 )。
但是如果实例的总数比较少,比如开发时一般只有一个实例,此时并不会自动从 Eureka Server 中注销,Eureka Server 会默认开启自我保护,自我保护状态下不会删除任何实例。
通过修改 Eureka Server 的配置文件(application.yml)可以关闭自我保护。
默认当 Eureka Server 连续 3 次(默认心跳间隔是 30s)没有收到该服务的心跳时,会自动将该实例注销(进入自我保护模式时除外)。
但是也可以通过手动发送 DELETE
请求到 Eureka Server 来注销服务实例。
格式如下:
curl -v -X DELETE http://{Eureka Server 地址}/eureka/apps/{Application 名}/{Eureka 实例的 ID}
不需要注册自身到 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/