javascript
《SpringCloud超级入门》Spring Cloud Eureka是什么?《八》
Spring cloud Eureka 是 Spring?Cloud Netflix 微服務(wù)套件的一部分,基于 Netflix Eureka 做了二次封裝,主要負(fù)責(zé)實(shí)現(xiàn)微服務(wù)架構(gòu)中的服務(wù)治理功能。
Spring Cloud Eureka 是一個(gè)基于 REST 的服務(wù),并且提供了基于 Java 的客戶端組件,能夠非常方便地將服務(wù)注冊到 Spring Cloud Eureka 中進(jìn)行統(tǒng)一管理。
服務(wù)治理是微服務(wù)架構(gòu)中必不可少的一部分,阿里開源的 Dubbo 框架就是針對服務(wù)治理的。服務(wù)治理必須要有一個(gè)注冊中心,除了用 Eureka 作為注冊中心外,我們還可以使用 Consul、Etcd、Zookeeper 等來作為服務(wù)的注冊中心。
用過 Dubbo 的讀者應(yīng)該清楚,Dubbo 中也有幾種注冊中心,比如基于 Zookeeper、基于 Redis等,不過用得最多的還是 Zookeeper 方式。
至于使用哪種方式都是可以的,注冊中心無非就是管理所有服務(wù)的信息和狀態(tài)。若用我們生活中的例子來說明的話,筆者覺得 12306 網(wǎng)站比較合適。
首先,12306 網(wǎng)站就好比一個(gè)注冊中心,顧客就好比調(diào)用的客戶端,當(dāng)他們需要坐火車時(shí),就會登錄 12306 網(wǎng)站上查詢余票,有票就可以購買,然后獲取火車的車次、時(shí)間等,最后出發(fā)。
程序也是一樣,當(dāng)你需要調(diào)用某一個(gè)服務(wù)的時(shí)候,你會先去 Eureka 中去拉取服務(wù)列表,查看你調(diào)用的服務(wù)在不在其中,在的話就拿到服務(wù)地址、端口等信息,然后調(diào)用。
注冊中心帶來的好處就是,不需要知道有多少提供方,你只需要關(guān)注注冊中心即可,就像顧客不必關(guān)心有多少火車在開行,只需要去 12306 網(wǎng)站上看有沒有票就可以了。
為什么 Eureka 比 Zookeeper 更適合作為注冊中心呢?主要是因?yàn)?Eureka 是基于 AP 原則構(gòu)建的,而 ZooKeeper 是基于 CP 原則構(gòu)建的。
在分布式系統(tǒng)領(lǐng)域有個(gè)著名的 CAP 定理,即 C 為數(shù)據(jù)一致性;A 為服務(wù)可用性;P 為服務(wù)對網(wǎng)絡(luò)分區(qū)故障的容錯(cuò)性。這三個(gè)特性在任何分布式系統(tǒng)中都不能同時(shí)滿足,最多同時(shí)滿足兩個(gè)。
Zookeeper 有一個(gè) Leader,而且在這個(gè) Leader 無法使用的時(shí)候通過 Paxos(ZAB)算法選舉出一個(gè)新的 Leader。這個(gè) Leader 的任務(wù)就是保證寫數(shù)據(jù)的時(shí)候只向這個(gè) Leader 寫入,Leader 會同步信息到其他節(jié)點(diǎn)。通過這個(gè)操作就可以保證數(shù)據(jù)的一致性。
總而言之,想要保證 AP 就要用 Eureka,想要保證 CP 就要用 Zookeeper。
Dubbo 中大部分都是基于 Zookeeper 作為注冊中心的。Spring Cloud 中當(dāng)然首選 Eureka。
上一篇 Spring Boot Starter的介紹及使用《七》
下一篇介紹 使用Eureka編寫注冊中心服務(wù)?
相關(guān)springboot實(shí)戰(zhàn)項(xiàng)目推薦
基于java ssm springboot+VUE疫情防疫系統(tǒng)系統(tǒng)前后端分離設(shè)計(jì)和實(shí)現(xiàn)
基于java springboot+mybatis電影售票網(wǎng)站管理系統(tǒng)前臺+后臺設(shè)計(jì)和實(shí)現(xiàn)
基于java ssm springboot+mybatis酒莊內(nèi)部管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)
基于JAVA springboot+mybatis智慧生活分享平臺設(shè)計(jì)和實(shí)現(xiàn)
基于Java springboot+vue+redis前后端分離家具商城平臺系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)
基于JAVA SSM springboot實(shí)現(xiàn)的抗疫物質(zhì)信息管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)
查看更多首頁實(shí)戰(zhàn)項(xiàng)目 >>>
總結(jié)
以上是生活随笔為你收集整理的《SpringCloud超级入门》Spring Cloud Eureka是什么?《八》的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML+CSS+JS实现 ❤️canv
- 下一篇: php相隔几分钟变换随机数,PHP怎么固