Eureka 基礎知識

忽略元數據末尾
回到原數據開始處

Eureka是netflix公司研發而且開源的一個服務發現組件。spring

Eureka架構圖:apache

Eureka組件包含註冊中心(Eureka Server)和eureka客戶端。api

    服務註冊中心:Eureka客戶端會把自身服務註冊到註冊中心,爲其餘Eureka客戶端提供服務,Eureka客戶端經過註冊中心相互發現對應服務並進行調用緩存

    Eureka客戶端:相對註冊中心而言,全部註冊到服務註冊中心的服務均可以表述爲Eureka客戶端;可是站在提供方和消費方的角度看,Eureka客戶端又能夠稱之爲服務端服務器


優勢:網絡

    Eureka提供了一個客戶端庫,該庫提供了服務心跳、服務健康檢查、自動發佈及緩存刷新等功能。架構

    若是使用ZooKeeper,這些功能都須要本身實現,而且zookeeper經過心跳發現服務不可用時,會當即刪除註冊到zookeeper的服務;而eureka不會當即刪除服務,由於註冊的服務有可能只是由於網絡輕微波動致使沒法發送心跳,並非服務不可用。負載均衡

    Eureka在客戶端會有緩存。即便全部Eureka服務器不可用,服務註冊信息也不會丟失。緩存在這裏是恰當的,由於它只在全部的Eureka服務器都沒響應的狀況下才會用到。ide

    Eureka使用Ribbon組件實現客戶端負載均衡策略fetch

缺點:

    當全部服務端都同時中止以後,而後重啓,客戶端須要等待必定時間(最長30s,由於客戶端會30s請求一次eureka註冊中心)才能鏈接服務端,由於雖然在註冊中心顯示服務端已經註冊,可是服務有可能尚未全啓動,因此須要等待(其實也不像缺點–!)

Eureka參數配置以下:

 

 
Name
Default
Description
1 eureka.client.enabled true

代表尤里卡客戶端啓用

2 eureka.client.eureka-connection-idle-timeout-seconds 30

顯示HTTP鏈接尤里卡服務器處於閒置狀態多少時間(以秒爲單位)才能夠關閉。     

在AWS環境中,建議值是30秒或更少,由於在不穩定狀態防火牆清除鏈接信息幾分鐘後斷開鏈接

3 eureka.client.eureka-server-connect-timeout-seconds 5

表示要等多長時間(以秒爲單位)以前到尤里卡的鏈接服務器超時。

注意,鏈接在客戶端被org.apache.http.client聚集。HttpClient和創造這個設置會影響實際的鏈接以及等待時間從池中獲取鏈接。

4 eureka.client.register-with-eureka true

代表該實例可否被註冊到尤里卡服務的其餘客戶端發現。

在某些狀況下,您不但願您的實例被發現而你想發現其餘實例。

5 eureka.client.fetch-registry true

代表這個客戶可否應該從尤里卡服務端獲取尤里卡註冊表信息

6 eureka.client.g-zip-content true

顯示只要是支持的服務從尤里卡服務端獲取的內容是否被壓縮。

代表從尤里卡服務端獲取的信息是壓縮過的用來優化網絡流量。

7 eureka.client.heartbeat-executor-thread-pool-size 2 心跳執行器的線程池初始值。
8 eureka.client.initial-instance-info-replication-interval-seconds 40 代表最初多長時間(以秒爲單位)複製實例信息到尤里卡服務。
9 eureka.client.instance-info-replication-interval-seconds 30 代表多長時間(以秒爲單位)複製實例更改到尤里卡服務。
10 eureka.client.registry-fetch-interval-seconds 30 代表多長時間(以秒爲單位)從尤里卡服務獲取註冊表信息。
11 eureka.client.serviceUrl.defaultZone   尤里卡客戶端和服務端通訊的地址,多個地址用逗號隔開,e.g. http://localhost:8761/eureka/
12 eureka.dashboard.enabled true 代表是否啓用尤里卡服務控制檯,默認爲啓用
13 eureka.dashboard.path / 尤里卡服務控制檯的相對路徑,默認爲「/」
14 eureka.instance.health-check-url   尤里卡實例健康檢查絕對路徑URL
15 eureka.instance.home-page-url   尤里卡實例home頁面絕對路徑URL
16 eureka.instance.hostname   尤里卡實例主機名;若是不配置,尤里卡會直接使用操做系統的主機名
17 eureka.instance.lease-expiration-duration-in-seconds 90

代表尤里卡服務等待的時間間隔,以秒爲單位自收到最後的心跳才能把這個實例從它的視圖中刪除。

這個值被設置爲至少高於leaseRenewalIntervalInSeconds中指定的值。

18 eureka.instance.lease-renewal-interval-in-seconds 30

代表尤里卡客戶端間隔多長時間(以秒爲單位)向尤里卡服務發送心跳信息用來證實客戶端是活着的;

在leaseExpirationDurationInSeconds參數的指定值期間沒有收到來自客戶端的心跳,這個實力會被尤里卡服務刪除

19 eureka.instance.namespace eureka 經過配置文件找到namespace,忽略springcloud的配置
20 eureka.instance.status-page-url   尤里卡實例狀態頁面絕對路徑URL
相關文章
相關標籤/搜索