(8)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/70006413/viewspace-2917879/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java Spring Cloud企業快速開發架構之SpringCloud-Spring Cloud EurekaJavaSpringCloud架構GC
- 【Spring Cloud】之 EurekaSpringCloud
- 4、Spring Cloud EurekaSpringCloud
- Spring Cloud 之 Eureka.SpringCloud
- 服務治理: Spring Cloud EurekaSpringCloud
- Spring Cloud Eureka 實現安全控制SpringCloud
- Spring Cloud— 五、註冊中心EurekaSpringCloud
- Spring Cloud Eureka 學習記錄SpringCloud
- Spring Cloud應用(一)---eureka使用SpringCloud
- Spring Cloud服務發現元件EurekaSpringCloud元件
- spring cloud: 使用consul來替換eurekaSpringCloud
- Spring Cloud Gateway 整合Eureka路由轉發SpringCloudGateway路由
- Spring Cloud系列(二):Eureka應用詳解SpringCloud
- Spring cloud(2)-服務發現(Eureka,Consul)SpringCloud
- Spring Cloud:Zookeeper和Eureka的區別在哪?SpringCloud
- springcloud學習筆記(一)Spring Cloud EurekaSpringGCCloud筆記
- Spring Cloud認知學習(一):Spring Cloud介紹與Eureka使用SpringCloud
- 初識Spring Cloud Eureka(三)(Eureka客戶端之間 服務的相互呼叫)SpringCloud客戶端
- Spring Cloud 系列(二)Eureka 高可用註冊中心SpringCloud
- Spring Cloud Netflix—示例在Ribbon中禁用Eureka使用SpringCloud
- Spring cloud系列教程第十篇- Spring cloud整合Eureka總結篇SpringCloud
- 普通springcloud eureka 和 spring cloud Alibaba nacos 註冊中心SpringGCCloud
- spring cloud微服務架構-Eureka保護機制SpringCloud微服務架構
- Spring Cloud Eureka Server高可用之:線上擴容SpringCloudServer
- Spring-Cloud 從0開始(一) Eureka-ServerSpringCloudServer
- 【Spring Cloud】Eureka實現微服務釋出與呼叫SpringCloud微服務
- Spring Cloud微服務-基於Eureka的feign呼叫(1)SpringCloud微服務
- Spring Cloud Netflix—服務發現:Eureka伺服器SpringCloud伺服器
- Spring Cloud(九)高可用的分散式配置中心 Spring Cloud Config 整合 Eureka 服務SpringCloud分散式
- 8、Spring Cloud ZuulSpringCloudZuul
- Spring Cloud Eureka 實現服務註冊與發現SpringCloud
- spring cloud系列教程第六篇-Eureka叢集版SpringCloud
- Spring Cloud系列(四):Eureka原始碼解析之客戶端SpringCloud原始碼客戶端
- Spring Cloud系列(三):Eureka原始碼解析之服務端SpringCloud原始碼服務端
- 二、Spring Cloud 之旅 -- Eureka 微服務的釋出與呼叫SpringCloud微服務
- Spring Cloud 系列(一)Eureka 服務註冊與發現SpringCloud
- java版工程管理系統原始碼Spring Cloud之SpringCloud-Spring Boot專案詳細搭建步驟Java原始碼CloudGCSpring Boot
- Spring Cloud Eureka 註冊中心叢集搭建,Greenwich 最新版!SpringCloud