Eureka 註冊中心 - 如果服務不想註冊到Eureka Server ,可設置
spring.cloud.service-registry.auto-registration.enabled=false
或
@EnableDiscoveryClient(autoRegister = false)
Eureka 註冊中心 - 服務的手動剔除與恢復
最近在 SpringCloud 項目中發現 Eureka 註冊中心的微服務會被異常的 DOWN 掉,但是微服務其實並沒有宕機,如果想強行重新上線要如何操作呢?
Eureka Rest接口- 心跳續約
接口地址: /eureka/apps/appID/instanceID
調用方式:PUT
源碼地址:com.netflix.eureka.resources.InstanceResource.renewLease()
返回狀態:
HTTPCode: 200 爲成功
HTTPCode: 404 續約失敗,重新註冊
接口說明:調用該接口進行心跳續約
調用說明:: http://{ip}:{port}/eureke/apps/{spring.application.name}/{eureka.instance.instance-id}
http://server1:8010/eureka/apps/{spring.application.name}/{eureka.instance.instance-id}
例如:
1. 強制恢復服務:UP
PUT 請求:
http://server1:8010/eureka/apps/BOOK-SERVICE/book-service-01/status?value=UP
2. 強制下線服務:DOWN
PUT 請求:
http://server1:8010/eureka/apps/BOOK-SERVICE/book-service-01/status?value=DOWN
3. 強制剔除服務:OUT_OF_SERVICE
PUT 請求:
http://server1:8010/eureka/apps/BOOK-SERVICE/book-service-01/status?value=OUT_OF_SERVICE
警告:強制設置後狀態將會覆蓋真實狀態,謹慎操作!!如果需要取消強制設置,將 PUT 請求改爲 DELETE 請求即可!!!
注意:對於json/xml,提供的內容類型必須是application/xml或application/json。
Operation | HTTP action | Description |
註冊新應用程序實例 | POST /eureka/v2/apps/appID | Input: JSON/XMLpayload HTTPCode: 204 on success |
取消註冊應用程序實例 |
DELETE /eureka/v2/apps/appID/instanceID | HTTP Code: 200 on success |
發送應用程序實例檢測信號 | PUT /eureka/v2/apps/appID/instanceID | HTTP Code: * 200 on success * 404 if instanceID doesn’t exist |
查詢所有實例 | GET /eureka/v2/apps | HTTP Code: 200 on success Output: JSON/XML |
查詢所有appID instances | GET /eureka/v2/apps/appID | HTTP Code: 200 on success Output: JSON/XML |
查詢特定的AppID/實例ID | GET /eureka/v2/apps/appID/instanceID | HTTP Code: 200 on success Output: JSON/XML |
查詢特定的instanceID | GET /eureka/v2/instances/instanceID | HTTP Code: 200 on success Output: JSON/XML |
停止服務實例 | PUT /eureka/v2/apps/appID/instanceID/status?value=OUT_OF_SERVICE | HTTP Code: * 200 on success * 500 on failure |
將實例移回服務(移除覆蓋) | DELETE /eureka/v2/apps/appID/instanceID/status?value=UP (The value=UP is optional, it is used as a suggestion for the fallback status due to removal of the override) | HTTP Code: * 200 on success * 500 on failure |
Update metadata | PUT /eureka/v2/apps/appID/instanceID/metadata?key=value | HTTP Code: * 200 on success * 500 on failure |
查詢特定VIP地址下的所有實例 | GET /eureka/v2/vips/vipAddress | * HTTP Code: 200 on success Output: JSON/XML * 404 if the vipAddress does not exist. |
查詢特定安全VIP地址下的所有實例 |
GET /eureka/v2/svips/svipAddress | * HTTP Code: 200 on success Output: JSON/XML * 404 if the svipAddress does not exist. |