負責路由轉發+過濾器;他是系統的惟一對外的入口,介於客戶端和服務器之間的中間層,處理非業務功能,提供路由請求、鑑權、監控、緩存、限流等功能nginx
調用和被調用方信息維護;服務啓動的時候,都註冊到註冊中內心,這樣的話別人調用的時候,就知道有哪些ip地址和端口號了緩存
管理配置,動態更新服務器
分析調用鏈路耗時;例如:下單、查庫存、減庫存、付款、下單完成網絡
分發負載;例如:nginx架構
保護本身和被調用方,相似於家裏的保險絲,爲了防止整個系統故障負載均衡
服務降級是當服務器壓力劇增的狀況下,根據當前業務狀況及流量對一些服務和頁面有策略的降級,以此釋放服務器資源以保證核心任務的正常運行。異步
拋棄一些非核心的接口和數據,例如:雙11,支付寶將查詢當月帳單功能臨時降級等等分佈式
服務管理,核心是有個服務註冊表,心跳機制動態維護微服務
啓動的時候向註冊中心上報本身的網絡信息網站
啓動的時候向註冊中心上報本身的網站信息,拉取提供者的相關網絡信息
微服務應用和機器愈來愈多,調用方須要知道接口的網絡地址,若是靠配置文件的方式去控制網絡地址,對於動態新增機器,維護起來很麻煩
指的是在一個分佈式系統中,Consistency(一致性)、Availability(可用性)、Partition tolerance(分區容錯性),三者不可同時得到。CAP理論就是說在分佈式存儲系統中,最多隻能實現上面的兩點。而因爲當前的網絡硬件確定會出現延遲丟包等問題,因此分區容錯性是咱們必須須要實現的,因此咱們只能在一致性和可用性之間進行權衡。
在分佈式系統中的全部數據備份,在同一時刻是否一樣的值(全部節點在同一時間的數據徹底一致,越多數據同步越耗時)。
負載過大後,集羣總體是否還能響應客戶端的讀寫請求(服務一直可用,並且是正常響應時間)。
分區容忍性,就是高可用性,一個節點崩了,並不影響其餘的節點。
數據同步(C)須要時間,也要正常的時間內響應(A),那麼機器數量就要少,因此P就不知足。
數據同步(C)須要時間,機器數量也多(P),可是同步數據須要時間,因此不能再正常時間內響應,因此A就不知足。
機器數量也多(P),正常的時間內響應(A),那麼數據就不能及時同步其餘節點,因此C不知足。
Zookeeper:CP原則,保證了一致性,集羣搭建的時候,某個節點失效,則會進行選舉新的leader,或者半數以上節點不可用,則沒法提供服務,所以可用性無法知足
Eureka:AP原則,無主從節點,一個節點掛了,自動切換其餘節點能夠使用,去中心化
遠程過程調用,像調用本地服務(方法)同樣調用服務器的服務,支持同步、異步調用,客戶端和服務器之間創建TCP鏈接,能夠一次創建一個,也能夠多個調用複用一次鏈接
http請求,支持多種協議和功能,開發方便成本低