微服務核心基礎知識

架構圖

網關

  負責路由轉發+過濾器;他是系統的惟一對外的入口,介於客戶端和服務器之間的中間層,處理非業務功能,提供路由請求、鑑權、監控、緩存、限流等功能nginx

服務註冊發現

  調用和被調用方信息維護;服務啓動的時候,都註冊到註冊中內心,這樣的話別人調用的時候,就知道有哪些ip地址和端口號了緩存

配置中心

  管理配置,動態更新服務器

鏈路追蹤

  分析調用鏈路耗時;例如:下單、查庫存、減庫存、付款、下單完成網絡

負載均衡器

  分發負載;例如:nginx架構

熔斷

  保護本身和被調用方,相似於家裏的保險絲,爲了防止整個系統故障負載均衡

降級

  服務降級是當服務器壓力劇增的狀況下,根據當前業務狀況及流量對一些服務和頁面有策略的降級,以此釋放服務器資源以保證核心任務的正常運行。異步

熔斷和降級區別

相同點

  1. 從可用性和可靠性觸發,爲了防止系統崩潰
  2. 最終讓用戶體驗到的是某些功能暫時不能用

不一樣點

  1. 服務熔斷通常是下游服務故障致使的
  2. 服務降級通常是從整個系統負荷考慮,由調用方控制

  拋棄一些非核心的接口和數據,例如:雙11,支付寶將查詢當月帳單功能臨時降級等等分佈式

什麼是微服務的註冊中心

  服務管理,核心是有個服務註冊表,心跳機制動態維護微服務

服務提供者

  啓動的時候向註冊中心上報本身的網絡信息網站

服務消費者

  啓動的時候向註冊中心上報本身的網站信息,拉取提供者的相關網絡信息

爲何要用註冊中心

  微服務應用和機器愈來愈多,調用方須要知道接口的網絡地址,若是靠配置文件的方式去控制網絡地址,對於動態新增機器,維護起來很麻煩

主流的註冊中心

  1. zookeeper
  2. eureka
  3. consul
  4. etcd
  5. nacos

分佈式應用CAP理論知識

定理

  指的是在一個分佈式系統中,Consistency(一致性)、Availability(可用性)、Partition tolerance(分區容錯性),三者不可同時得到CAP理論就是說在分佈式存儲系統中最多隻能實現上面的兩點。而因爲當前的網絡硬件確定會出現延遲丟包等問題,因此分區容錯性是咱們必須須要實現的,因此咱們只能在一致性和可用性之間進行權衡

一致性(C)

  在分佈式系統中的全部數據備份,在同一時刻是否一樣的值(全部節點在同一時間的數據徹底一致,越多數據同步越耗時)。

可用性(A)

  負載過大後,集羣總體是否還能響應客戶端的讀寫請求(服務一直可用,並且是正常響應時間)。

分區容錯性(P)

  分區容忍性,就是高可用性,一個節點崩了,並不影響其餘的節點。

CA(一致性、可用性)

  數據同步(C)須要時間,也要正常的時間內響應(A),那麼機器數量就要少,因此P就不知足。

CP(一致性、分區容錯性)

  數據同步(C)須要時間,機器數量也多(P),可是同步數據須要時間,因此不能再正常時間內響應,因此A就不知足。

AP(可用性、分區容錯性)

  機器數量也多(P),正常的時間內響應(A),那麼數據就不能及時同步其餘節點,因此C不知足。

註冊中心選擇

  Zookeeper:CP原則,保證了一致性,集羣搭建的時候,某個節點失效,則會進行選舉新的leader,或者半數以上節點不可用,則沒法提供服務,所以可用性無法知足

  Eureka:AP原則,無主從節點,一個節點掛了,自動切換其餘節點能夠使用,去中心化

服務間調用方式

RPC

  遠程過程調用,像調用本地服務(方法)同樣調用服務器的服務,支持同步、異步調用,客戶端和服務器之間創建TCP鏈接,能夠一次創建一個,也能夠多個調用複用一次鏈接

REST(Http)

  http請求,支持多種協議和功能,開發方便成本低

未完持續性更新

相關文章
相關標籤/搜索