服務註冊Eureka高階

2022-08-19 07:18:16 字數 3578 閱讀 8804

eureka server 高可用集群:

eureka client會定時連線eureka server,獲取登錄檔中的資訊並快取到本地。微服務在消費遠端api時總是使用本地快取中的資料。因此一般來說,即使eureka server發生宕機,也不會影響到服務之間的呼叫。但如果eurekaserver宕機時,某些微服務也出現了不可用的情況,eureka server中的快取若不被重新整理,就可能會影響到微服務的呼叫,甚至影響到整個應用系統的高可用。因此,在生產環境中,通常會部署乙個高可用的eureka server集群。

eureka server可以通過執行多個例項並相互註冊的方式實現高可用部署,eureka server例項會彼此增量地同步資訊,從而確保所有節點資料一致。事實上,節點之間相互註冊是eureka server的預設行為。

搭建 eureka server高可用集群:

修改 eureka_server 工程中的yml配置檔案,新增如下配置屬性,然後啟動

#模擬兩個eureka server

#埠8000 9000#兩個server需要互相註冊

server:

port: 9000#配置eureka server

eureka:

client:

register-with-eureka: true

#是否將自己註冊到註冊中心

fetch-registry: true

#是否從eureka中獲取註冊資訊

service-url: #配置暴露給eureka client的請求位址

#模擬兩個eureka server

#埠8000 9000#兩個server需要互相註冊

server:

port: 8000#配置eureka server

eureka:

client:

register-with-eureka: true

#是否將自己註冊到註冊中心

fetch-registry: true

#是否從eureka中獲取註冊資訊

service-url: #配置暴露給eureka client的請求位址

dashboard每次只能啟動乙個,需要複製乙份配置,再啟動

這種方式可能會出現埠占用問題,即使你改了配置檔案,暴力且有效的辦法是再複製乙個啟動類來啟動

訪問 http://localhost:8000/ 和 http://localhost:9000/ ,會發現註冊中心 eureka-server 已經有兩個節點,並且 registered-replicas (相鄰集群複製節點)中已經包含對方。

服務註冊到eureka server集群:

如果需要將微服務註冊到eureka server集群只需要修改yml配置檔案,eurekaserver的路徑增加多個即可。

#配置eureka

eureka:

client:

service-url: #eurekaserver的路徑

prefer-ip-address: true #使用ip註冊

eureka中的常見問題:

監控頁面顯示ip

在eureka server的管控臺中,顯示的服務例項名稱預設情況下是微服務定義的名稱和埠。

為了更好的對所有服務進行定位,微服務註冊到eureka server的時候可以手動配置顯示id。

#配置eureka

eureka:

client:

service-url: #eurekaserver的路徑

#使用ip註冊

instance

-ip: $:$

服務節點剔除問題

預設情況下,由於eureka server剔除失效服務間隔時間為90s且存在自我保護的機制。所以不能有效而迅速的剔除失效節點,這對開發或測試會造成困擾。解決方案如下:

eureka server:配置關閉自我保護,設定剔除無效節點的時間間隔

server:

port: 9000#配置eureka server

eureka:

client:

register-with-eureka: true

#是否將自己註冊到註冊中心

fetch-registry: true

#是否從eureka中獲取註冊資訊

service-url: #配置暴露給eureka client的請求位址

#關閉自我保護

eviction

-interval-timer-in-ms: 4000 #剔除時間間隔,單位毫秒

eureka client:配置開啟健康檢查,並設定續約時間

#配置eureka

eureka:

client:

healthcheck:

true #開啟健康檢查(依賴spring-boot-

actuator)

service-url: #eurekaserver的路徑

prefer-ip-address: true

#使用ip註冊

instance-id: $:$

lease

-expiration-duration-in-seconds: 10

#eureka client傳送心跳給server端後,續約到期時間(預設90秒)

lease

-renewal-interval-in-seconds: 5 #傳送心跳續約間隔(預設30秒)

Eureka服務註冊中心

1.適用場景有侷限 如果服務提供者的網路位址 ip和埠 發生變化,將會影響服務消費者。2.無法動態伸縮 每個微服務一般都會部署多個例項,從而實現實現容災和負載均衡,微服務系統需要具備自動伸縮的能力。如何解決上述方案 1 需要乙個強大的服務發現機制,服務消費者使用這種機制獲取服務提供者的網路資訊,及時...

Eureka 服務註冊發現

eureka簡述 eureka在微服務中經常使用,用作服務註冊中心,和zookepeer功能相似 eureka server 服務註冊中心 eureka server通過集群方式部署,當有新的服務註冊時,會同步到其他的eureka server cap 一致性 可用性 分割槽容錯性 乙個分布式部署中...

eureka 服務註冊中心

作為服務註冊中心,eureka比zookeeper區別 著名的cap理論指出,乙個分布式系統不可能同時滿足c 一致性 a 可用性 和p 分割槽容錯性 由於分割槽容錯性在是分布式系統中必須要保證的,因此我們只能在a和c之間進行權衡。在此zookeeper保證的是cp,而eureka則是ap 1.zoo...