微服務應用開發入門③微服務組件eureka、ribbon、feign和hystrix初識

註冊中心--Eureka

相信通過微服務應用開發入門①web端架構演進童鞋已經大概知道註冊中心的概念和它是做什麼的;

Eureka是Netflix開源的一款提供服務註冊和發現的產品,它提供了完整的Service Registry和Service Discovery實現。

那我們還必須搞明白一些概念(當然其他概念還有很多很多)

Register: 服務註冊

服務的提供者,將自身註冊到註冊中心,服務提供者也是一個 Eureka Client。當 Eureka Client 向 Eureka Server 註冊時,它提供自身的元數據,比如 IP 地址、端口,運行狀況指示符 URL,主頁等。

Renew: 服務續約

Eureka Client 會每隔 30 秒發送一次心跳來續約。 通過續約來告知 Eureka Server 該 Eureka Client 運行正常,沒有出現問題。 默認情況下,如果 Eureka Server 在 90 秒內沒有收到 Eureka Client 的續約,Server 端會將實例從其註冊表中刪除,此時間可配置,一般情況不建議更改

負載均衡 

負載均衡是我們處理高併發、緩解網絡壓力和進服務端擴容的重要手段之一。 一般情況下我們所說的負載均衡通常都是指服務端負載均衡。 服務端負載均衡又分爲兩種,一種是硬件負載均衡,還有一種是軟件負載均衡。

客戶端負載均衡

指客戶端可以選擇調用的服務。 客戶端負載均衡和服務端負載均衡最大的區別在於服務清單所存儲的位置 

那我們服務和服務之間調用的時候,使用的就是Eureka + Ribbon提供的客戶端負載均衡;

負載均衡器Ribbon

Ribbon是Netflix發佈的開源負載均衡項目

Ribbon是一個基於HTTP和TCP客戶端的負載均衡器。

當我們將Ribbon和Eureka一起使用時,Ribbon會從Eureka註冊中心去獲取服務端列表,然後進行輪詢訪問以到達負載均衡的作用,客戶端負載均衡中也需要心跳機制去維護服務端清單的有效性,當然這個過程需要配合服務註冊中心一起完成

Feign中也使用Ribbon 

Feign是一個聲明式的web service客戶端,它可以方便的和Ribbon集成,使用它我們可以快速進行服務之間的調用

Eureka+Ribbon+Feign簡單應用

源碼 https://github.com/zhouxiaohei/cloud-start-demo/tree/master/cloud-eureka-demo  先啓動eureka

https://github.com/zhouxiaohei/cloud-start-demo/tree/master/cloud-service-a  啓動服務A

https://github.com/zhouxiaohei/cloud-start-demo/tree/master/cloud-service-b 啓動服務B

使用服務A調用服務B;

待完善講解

 

Hystrix斷路器

  • 斷路器模式源於Martin Fowler的Circuit Breaker一文。“斷路器”本身是一種開關裝置,用於在電路上保護線路過載,當線路中有電器發生短路時,“斷路器”能夠及時的切斷故障電路,防止發生過載、發熱、甚至起火等嚴重後果。
  • 在分佈式架構中,斷路器模式的作用也是類似的,當某個服務單元發生故障(類似用電器發生短路)之後,通過斷路器的故障監控(類似熔斷保險絲),向調用方返回一個錯誤響應,而不是長時間的等待。這樣就不會使得線程因調用故障服務被長時間佔用不釋放,避免了故障在分佈式系統中的蔓延。
  • 熔斷器也可以使應用程序能夠診斷錯誤是否已經修正,如果已經修正,應用程序會再次嘗試調用操作。
  • Hystrix具備擁有回退機制和斷路器功能的線程和信號隔離,請求緩存和請求打包,以及監控和配置等功能。

 

服務的健康狀況 = 請求失敗數 / 請求總數. 

熔斷器開關由關閉到打開的狀態轉換是通過當前服務健康狀況和設定閾值比較決定的.

熔斷器開關關閉

請求被允許通過熔斷器. 如果當前健康狀況高於設定閾值, 開關繼續保持關閉.

熔斷器開關打開

如果當前健康狀況低於設定閾值, 開關則切換爲打開狀態. 當熔斷器開關打開時, 請求被禁止通過。

熔斷器開關半開

當熔斷器開關處於打開狀態, 經過一段時間後, 熔斷器會自動進入半開狀態, 這時熔斷器只允許一個請求通過. 當該請求調用成功時, 熔斷器恢復到關閉狀態. 若該請求失敗, 熔斷器繼續保持打開狀態, 接下來的請求被禁止通過.

總結: 熔斷器的開關能保證服務調用者在調用異常服務時, 快速返回結果, 避免大量的同步等待. 並且熔斷器能在一段時間後繼續偵測請求執行結果, 提供恢復服務調用的可能.

Hystrix簡單應用---待完善

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章