spring cloud(第三部)註冊中心的選擇

CP與AP的概念

  • 什麼是CAP
    CAP原則又稱CAP定理,指的是在一個分佈式系統中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分區容錯性),三者不可兼得算法

zookeeper與eureka

  • 特性比較
    spring

  • 應用場景分析
    一、從功能上看,eureka的定位是做爲一個註冊中心存在,而對於zookeeper,服務註冊只是它的一個基礎功能
    二、eureka和zookeeper同樣,均可以組成高可用的集羣,eureka的各個節點屬於平等地位,而zookeeper集羣的各節點具備主從的區別,不一樣的角色承擔不一樣任務
    三、zookeeper經過zab協議實現了paxos算法,具備數據的強一致性,由於這些特性,因此它具備分佈式鎖和分佈式隊列的支持,zookeeper特有的watcher註冊監聽機制,因此也使它具有了服務協調的應用場景分佈式

註冊中心的選擇

  • zookeeper適合微服務的場景嗎
    它實現了強一致性,原理參考:https://zhuanlan.zhihu.com/p/25594630   當leader發生宕機之後,須要從新選舉出一個新的leader出來,重要的是須要保證節點的數據一致性,須要通過一些列的流程如:投票初始化、廣播、數據比較、數據同步等,比較耗時,在這期間不能對外提供服務,對於微服務來講,出現暫時的註冊中心不可用微服務

  • 微服務的場景下eureka更合適
    eureka的各級節點不存在主從概念,徹底對等,當某些節點宕機後,仍然能夠從可用的eureka server獲取服務列表、註冊新的服務,只是不能保證各server的服務列表是最新的(不保證強一致)oop

  • zookeeper的強一致性適用在哪裏
    zookeeper在hadoop等大數據生態下是風生水起,是由watcher機制、持久化、一致性等的緣由決定的,不是做爲一個孤立的註冊中心存在的。
    舉例:在hbase中有一個關於RootRegion的管理,它就是存在zookeeper中的,有什麼用途呢?就是咱們的client查詢一個數據的時候,先須要查詢RootRegion,從其內找到數據存儲位置,假如不能保證強一致性,會致使什麼嚴重後果?有可能會致使讀取元數據的時候取不到資源位置,直接找不到咱們須要的數據,這對於一個存儲系統來講是簡直不能接受的。大數據

  • 關於註冊的總結
    dubbo註冊的是細粒度的服務(ip+port+service)
    spring cloud的註冊服務,指的是粗粒度的服務(ip+port),由於它暴露的是http層面的,提供了http接口即意味着暴露spa

相關文章
相關標籤/搜索