您好,登錄后才能下訂單哦!
本篇文章為大家展示了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。
上述內容就是Spring Cloud Eureka是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。