1.EurekaClient向EurekaServer註冊時,和EurekaSever有續約時間和剔除時間的約定,默認30秒續約一次,如果90秒還沒有續約就可以剔除掉我
server:
port: 8000
spring:
application:
name: user
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
instance:
#和房東續約時間,默認30秒
leaseRenewalIntervalInSeconds: 2
#多久不交房租就被剔除,默認90秒
lease-expiration-duration-in-seconds: 4
2.EurekaSever啓動時會啓動一個剔除定時任務,默認60秒執行一次,當EurekaServer在執行剔除任務時發現有需要被剔除的EurekaClient會做剔除操作
server:
port: 8761
eureka:
server:
enableSelfPreservation: false
#多久執行一次剔除任務,默認時60秒
eviction-interval-timer-in-ms: 4000
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://localhost:${server.port}/eureka/
3.可以通過EurekaServer提供的Restful接口把EurekaClient實例的狀態變成OUT_OF_SERVICE狀態,EurekaServer在執行剔除任務時也會刪除掉
https://github.com/Netflix/eureka/wiki/Eureka-REST-operations
3.1獲取所有的註冊信息
http://localhost:8761/eureka/apps
3.2獲取指定應用USER的所有實例
http://localhost:8761/eureka/apps/USER
3.3將實例狀態改成OUT_OF_SERVICE
Take instance out of service PUT /eureka/v2/apps/appID/instanceID/status?value=OUT_OF_SERVICE
HTTP Code:
* 200 on success
* 500 on failure
PUT類型方法 http://localhost:8761/eureka/apps/USER/127.0.0.1:user:8000/status?value=OUT_OF_SERVICE
3.4將實例狀態改成UP
Take instance out of service PUT /eureka/v2/apps/appID/instanceID/status?value=UP
HTTP Code:
* 200 on success
* 500 on failure