dubbo與cloud的區別

1.協議

dubbo是基於rpc協議,基於接口的遠程調用;不能跨平臺

Cloud是http協議的,restful風格的,可以實現跨平臺調用

rpc協議是基於更底層的TCP協議,數據不需要通過http協議包裝,實踐性能更好。

2.使用方式

dubbo一般是xml配置的方式,cloud是boot基於註解的

3.註冊發現

dubbo使用的是zookeeper,在分佈式系統中,zookeeper更加關注一致性,和容錯性;當zookeeper主節點掛掉會有一個30~120s的選舉時間,期間服務是不可用的。

cloud的註冊中心使用的是EureKa,更加關注的是可用性,和分區容錯,多個eureka不存在單點問題;

4.容錯原理

Eureka server默認情況下在一定時間內沒有收到某個微服務實例的心跳,eureka會註銷該實例(90s),但當網絡發生分區故障時,微服務與Eureka無法正常通信,不應該註銷。通過自我保護來解決這個問題.

Eureka自我保護模式

當Eureka Server節點在短時間內發生丟失過多的客戶端(可能是網絡分區故障),那麼這個節點就會進入自我保護模式,一旦進入該模式,Eureka Server就會保護註冊表中的信息,不再刪除註冊表中的數據,即不再註銷任何微服務,當網絡恢復後。eureka節點會自動退出自我保護模式。

zookeeper和dubbo默認建立的是臨時節點   當多了一個服務端  zookeeper會心跳通知消費端  讓消費端在本地緩存存儲該地址,  其中有一個服務提供者下線也是同理 zookeeper會讓通知dubbo消費端清除那個失效的緩存 ,消費端調用服務端是查找本地緩存的地址的。

服務提供者向註冊中心註冊服務,消費者從註冊中心訂閱所需要的服務,但不是所有的服務,當新的提供者出現或者現有的提供者宕機,註冊中心都會盡早發現,並更新提供者的列表,推送給對應的消費者。有了這種機制,dubbo才能做到failover,而failover的時效性,由註冊中心的實現決定

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