天天看點

〖Spring Cloud〗Eureka高可用服務注冊中心詳解

Eureka服務注冊中心

相關視訊參考(來自動力節點):https://www.bilibili.com/video/BV1nK4y1j7gL

1、什麼是Eureka?

  • Netflix在涉及Eureka時,遵循的就是API原則.
  • Eureka是Netflix的有個子子產品,也是核心子產品之一。Eureka是基于REST的服務,用于定位服務,以實作雲端中間件層服務發現和故障轉移,服務注冊與發現對于微服務來說是非常重要的,有了服務注冊與發現,隻需要使用服務的辨別符,就可以通路到服務,而不需要修改服務調用的配置檔案了,功能類似于Dubbo的注冊中心,比如Zookeeper.

2、原理了解

Springcloud 封裝了Netflix公司開發的Eureka子產品來實作服務注冊與發現 (對比Zookeeper).

Eureka采用了C-S的架構設計,EurekaServer作為服務注冊功能的伺服器,他是服務注冊中心.

而系統中的其他微服務,使用Eureka的用戶端連接配接到EurekaServer并維持心跳連接配接。這樣系統的維護人員就可以通過EurekaServer來監控系統中各個微服務是否正常運作,Springcloud 的一些其他子產品 (比如Zuul) 就可以通過EurekaServer來發現系統中的其他微服務,并執行相關的邏輯.

〖Spring Cloud〗Eureka高可用服務注冊中心詳解

和Dubbo架構對比

〖Spring Cloud〗Eureka高可用服務注冊中心詳解
  • Eureka 包含兩個元件:Eureka Server 和 Eureka Client.
  • Eureka Server 提供服務注冊,各個節點啟動後,回在EurekaServer中進行注冊,這樣Eureka Server中的服務系統資料庫中将會儲存所有課用服務節點的資訊,服務節點的資訊可以在界面中直覺的看到.
  • Eureka Client 是一個Java用戶端,用于簡化EurekaServer的互動,用戶端同時也具備一個内置的,使用輪詢負載算法的負載均衡器。在應用啟動後,将會向EurekaServer發送心跳 (預設周期為30秒) 。如果Eureka Server在多個心跳周期内沒有接收到某個節點的心跳,EurekaServer将會從服務系統資料庫中把這個服務節點移除掉 (預設周期為90s).

三大角色

  • Eureka Server:提供服務的注冊與發現
  • Service Provider:服務生産方,将自身服務注冊到Eureka中,進而使服務消費方能狗找到
  • Service Consumer:服務消費方,從Eureka中擷取注冊服務清單,進而找到消費服務