java Spring Cloud企業快速開發架構之SpringCloud-Spring Cloud Eureka
Spring Cloud Eureka 是 Spring Cloud Netflix 微服務套件的一部分,基於 Netflix Eureka 做了二次封裝,主要負責實現微服務架構中的服務治理功能。
Spring Cloud Eureka 是一個基於 REST 的服務,並且提供了基於 Java 的客戶端元件,能夠非常方便地將服務註冊到 Spring Cloud Eureka 中進行統一管理。
服務治理是微服務架構中必不可少的一部分,阿里開源的 Dubbo 框架就是針對服務治理的。服務治理必須要有一個註冊中心,除了用 Eureka 作為註冊中心外,我們還可以使用 Consul、Etcd、Zookeeper 等來作為服務的註冊中心。
用過 Dubbo 的讀者應該清楚,Dubbo 中也有幾種註冊中心,比如基於 Zookeeper、基於 Redis 等,不過用得最多的還是 Zookeeper 方式。
至於使用哪種方式都是可以的,註冊中心無非就是管理所有服務的資訊和狀態。若用我們生活中的例子來說明的話,筆者覺得 12306 網站比較合適。
首先,12306 網站就好比一個註冊中心,顧客就好比呼叫的客戶端,當他們需要坐火車時,就會登入 12306 網站上查詢餘票,有票就可以購買,然後獲取火車的車次、時間等,最後出發。
程式也是一樣,當你需要呼叫某一個服務的時候,你會先去 Eureka 中去拉取服務列表,檢視你呼叫的服務在不在其中,在的話就拿到服務地址、埠等資訊,然後呼叫。
註冊中心帶來的好處就是,不需要知道有多少提供方,你只需要關注註冊中心即可,就像顧客不必關心有多少火車在開行,只需要去 12306 網站上看有沒有票就可以了。
為什麼 Eureka 比 Zookeeper 更適合作為註冊中心呢?主要是因為 Eureka 是基於 AP 原則構建的,而 ZooKeeper 是基於 CP 原則構建的。
在分散式系統領域有個著名的 CAP 定理,即 C 為資料一致性;A 為服務可用性;P 為服務對網路分割槽故障的容錯性。這三個特性在任何分散式系統中都不能同時滿足,最多同時滿足兩個。
Zookeeper 有一個 Leader,而且在這個 Leader 無法使用的時候透過 Paxos(ZAB)演算法選舉出一個新的 Leader。這個 Leader 的任務就是保證寫資料的時候只向這個 Leader 寫入,Leader 會同步資訊到其他節點。透過這個操作就可以保證資料的一致性。
總而言之,想要保證 AP 就要用 Eureka,想要保證 CP 就要用 Zookeeper。
Dubbo 中大部分都是基於 Zookeeper 作為註冊中心的。Spring Cloud 中當然首選 Eureka。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69994808/viewspace-2851227/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- (2)java Spring Cloud+Spring boot企業快速開發架構之Spring Cloud版本介紹JavaCloudSpring Boot架構
- (8)SpringCloud-Spring Cloud EurekaSpringGCCloud
- java Spring Cloud企業快速開發架構之SpringCloud-Eureka的REST API及API擴充套件JavaSpringCloud架構GCRESTAPI套件
- java Spring Cloud企業快速開發架構之Spring Boot Starter的介紹及使用JavaCloud架構Spring Boot
- java Spring Cloud企業快速開發架構之Ribbon結合RestTemplate實現負載均衡JavaSpringCloud架構REST負載
- (44)java Spring Cloud企業快速開發架構之Gateway實戰案例限流、熔斷、跨JavaSpringCloud架構Gateway
- (20)java Spring Cloud企業快速開發架構之SpringCloud-Ribbon自定義負載均衡策略JavaSpringCloud架構GC負載
- 11.Spring Cloud 分散式、微服務、雲架構企業快速開發架構之Linux 磁碟管理SpringCloud分散式微服務架構Linux
- (41)java Spring Cloud企業快速開發架構之SpringCloud-Gateway的常用路由斷言工廠JavaSpringCloud架構GCGateway路由
- 【Spring Cloud】之 EurekaSpringCloud
- 7.Spring Cloud 分散式、微服務、雲架構企業快速開發架構之Linux 遠端登入SpringCloud分散式微服務架構Linux
- Spring Cloud 之 Eureka.SpringCloud
- 8.Spring Cloud 分散式、微服務、雲架構企業快速開發架構之Linux 檔案基本屬性SpringCloud分散式微服務架構Linux
- 9.Spring Cloud 分散式、微服務、雲架構企業快速開發架構之Linux 檔案與目錄管理SpringCloud分散式微服務架構Linux
- (1)java Spring Cloud+mybatis企業快速開發架構之微服務是什麼?它的優缺點有哪些?JavaSpringCloudMyBatis架構微服務
- spring cloud微服務架構-Eureka保護機制SpringCloud微服務架構
- Java架構-(一)spring cloud微服務分散式雲架構 - Spring Cloud簡介Java架構SpringCloud微服務分散式
- 10.Spring Cloud 分散式、微服務、雲架構企業快速開發架構之Linux 使用者和使用者組SpringCloud分散式微服務架構Linux
- Spring Cloud Alibaba 多租戶 saas 設計的企業開發架構SpringCloud架構
- 企業快速開發平臺Spring Cloud+Spring Boot+Mybatis+ElementUICloudSpring BootMyBatisUI
- 4、Spring Cloud EurekaSpringCloud
- Spring Cloud Alibaba 分散式微服務+多租戶saas企業開發架構SpringCloud分散式微服務架構
- Spring Cloud Alibaba 分散式微服務+多租戶saas企業開發架構SpringCloud分散式微服務架構
- 企業快速開發平臺Spring Cloud+Spring Boot+Mybatis之Highcharts 基本餅圖CloudSpring BootMyBatis
- (十七)spring cloud微服務分散式雲架構-eureka 基礎SpringCloud微服務分散式架構
- 五、企業快速開發平臺Spring Cloud+Spring Boot+Mybatis+ElementUI之Lua 變數CloudSpring BootMyBatisUI變數
- spring cloud微服務分散式雲架構- Config 快速開始SpringCloud微服務分散式架構
- Spring Cloud Gateway 整合Eureka路由轉發SpringCloudGateway路由
- Spring Cloud服務發現元件EurekaSpringCloud元件
- Spring Cloud雲服務架構 - 企業分散式微服務雲架構構建SpringCloud架構分散式微服務
- spring cloud微服務分散式雲架構Spring Cloud ZuulSpringCloud微服務分散式架構Zuul
- spring cloud微服務分散式雲架構-Spring Cloud NetflixSpringCloud微服務分散式架構
- spring cloud微服務分散式雲架構-Spring Cloud BusSpringCloud微服務分散式架構
- CAS SSO單點登入客戶端環境搭建之java版spring cloud 分散式微服務企業快速架構客戶端JavaSpringCloud分散式微服務架構
- java版Spring Cloud 企業架構之CAS SSO單點登入服務端環境搭建JavaSpringCloud架構服務端
- 十六、企業快速開發平臺Spring Cloud+Spring Boot+Mybatis+ElementUI之Lua 檔案 I/OCloudSpring BootMyBatisUI
- 整合spring cloud雲服務架構 - 企業分散式微服務雲架構構建SpringCloud架構分散式微服務
- Spring Cloud微服務分散式雲架構 - 整合企業架構的技術點SpringCloud微服務分散式架構