javascript
SpringCloud(一):深入理解Eureka
實例和客戶端的元數據
Eureka Metadata for Instances and Clients
0、Eureka的元數據字面理解
- 原文: It is worth spending a bit of time understanding how the Eureka metadata works, so you can use it in a way that makes sense in your platform. There is standard metadata for information such as hostname, IP address, port numbers, the status page, and health check. These are published in the service registry and used by clients to contact the services in a straightforward way. Additional metadata can be added to the instance registration in the eureka.instance.metadataMap, and this metadata is accessible in the remote clients. In general, additional metadata does not change the behavior of the client, unless the client is made aware of the meaning of the metadata. There are a couple of special cases, described later in this document, where Spring Cloud already assigns meaning to the metadata map.
- 譯文: 花時間了解Eureka元數據的工作方式是一件值得的事,這樣您就可以在您的平臺上使用它了。標準元數據的信息包括:例如主機名、IP地址、端口號、狀態頁和健康檢查。這些服務發布在服務注冊中心,并由客戶端使用以簡單的方式與服務聯系??梢詫⑵渌獢祿砑拥?#61;=eureka.instance.metadataMap==中的實例注冊中,并且遠程客戶端可以訪問該元數據。通常,附加的元數據不會改變客戶端的行為,除非使客戶端知道元數據的含義。本文后面將描述幾個特殊情況,其中Spring Cloud已經為元數據映射分配了含義。
1、配置Eureka的元數據
eureka:instance:metadata-map: zone: ABC # eureka可以理解的元數據,因為eureka中有這個zone的名字mmzs: BBC # 不會影響客戶端行為,因為eureka中沒有mmzs這個名字,eureka不能理解這個元數據 復制代碼Using the EurekaClient
不要在@PostConstruct方法或@Scheduled方法中使用EurekaClient(或任何可能尚未啟動ApplicationContext的地方)。
為什么注冊服務這么慢?
官網文檔:cloud.spring.io/spring-clou…
作為一個實例,還會涉及到一個默認的持續時間為30秒的注冊表(通過客戶端的Service URL)的周期性心跳。 直到實例、服務端和客戶端在本地緩存中都具有相同的元數據(因此它可能會花費3個心跳周期),客戶端才可發現服務。您可以通過設置==eureka.instance.leaseRenewalIntervalInSeconds==來改變周期時間;將其設置為小于30秒,加快客戶端連接到其他服務端的過程。==在生產中,最好是堅持使用默認,因為在服務器內部有一些計算,它們會對租賃續訂期做出一些假設。==
eureka服務實例的應用名稱是?
優先級:2>0>1
0、默認是讀取配置
1、如該配置沒有,那么就是unknown
2、還可以通過下面的配置:
Eureka開啟自我保護的提示
當出現以下語句時:
EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE. 表明Eureka已經開啟自我保護。
如何解決Eureka Server不踢出已關停的節點的問題?
- server端:
- client端:
- 示例:
==注:== 在生產中,更改Eureka更新頻率將打破服務器的自我保護功能,所以最好堅持使用默認值,因為在服務器內部有一些計算,他們對續約做出假設。
參考文檔:github.com/spring-clou…
Eureka配置instanceId顯示IP
- 直接配置:
==注==: 如果只是配置了eureka.instance.prefer-ip-address=true,而不配置eureka.instance.instance-id,那還是顯示localhost,但ip地址是可以訪問得了。
- 手工指定IP(推薦)
添加以下配置:
- Spring Cloud Netflix Eureka: 多網卡環境下Eureka服務注冊IP選擇問題
鏈接:blog.csdn.net/neosmith/ar…
Eureka Environment和Eureka DataCenter的配置:
參考文檔: github.com/Netflix/eur… 2. Eureka DataCenter的配置
eureka.datacenter: cloud 復制代碼參考文檔:github.com/Netflix/eur…
這邊說:配置-Deureka.datacenter=cloud,這樣eureka將會知道是在AWS云上 3. 示例:
Eureka配置最佳實踐總結
參考文檔: github.com/spring-clou…
轉載于:https://juejin.im/post/5cfdbc335188255a70478f24
總結
以上是生活随笔為你收集整理的SpringCloud(一):深入理解Eureka的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记录一次【模仿真实环境】的内网漫游
- 下一篇: Spark学习之路 (十五)SparkC