日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

详解Nacos和Eureka的区别「建议收藏」(六十四卦详解)

發(fā)布時間:2023/12/19 综合教程 21 生活家
生活随笔 收集整理的這篇文章主要介紹了 详解Nacos和Eureka的区别「建议收藏」(六十四卦详解) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Eureka是什么

Eureka 是Spring Cloud 微服務(wù)框架默認(rèn)的也是推薦的服務(wù)注冊中心,
由Netflix公司與2012將其開源出來,Eureka基于REST服務(wù)開發(fā),主要用于實(shí)現(xiàn)AWS云的中服務(wù)定位,以實(shí)現(xiàn)中間層服務(wù)器的負(fù)載均衡和故障轉(zhuǎn)移,遵循著CAP理論中的A(可用性)P(分區(qū)容錯性)

Eureka詳解

一個Eureka中分為eureka server和eureka clint,其中eurka server是作為服務(wù)的注冊與發(fā)現(xiàn)中心,eureka client既可以作為服務(wù)的生產(chǎn)者,又可以作為服務(wù)的消費(fèi)者

Eurak2.0之后已經(jīng)停止開源

Nacos是什么

Nacos是阿里巴巴最新開源的項(xiàng)目,提供了一組簡單易用的特性集,幫助您快速實(shí)現(xiàn)動態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理。更敏捷和容易地構(gòu)建、交付和管理微服務(wù)平臺。

Nacos支持基于DNS和基于RPC的服務(wù)發(fā)現(xiàn),動態(tài)配置服務(wù)(配置中心),動態(tài)DNS服務(wù)

Nacos詳解

Provider APP:服務(wù)提供者
Consumer APP:服務(wù)消費(fèi)者
Name Server:通過VIP(Virtual IP)或DNS的方式實(shí)現(xiàn)Nacos高可用集群的服務(wù)路由
Nacos Server:Nacos服務(wù)提供者,里面包含的Open API是功能訪問入口,Conig Service、Naming Service 是Nacos提供的配置服務(wù)、命名服務(wù)模塊。Consitency Protocol是一致性協(xié)議,用來實(shí)現(xiàn)Nacos集群節(jié)點(diǎn)的數(shù)據(jù)同步,這里使用的是Raft算法(Etcd、Redis哨兵選舉)
Nacos Console:控制臺

Nacos的實(shí)現(xiàn)原理
1.客戶端provider向nacos server的open api發(fā)起調(diào)用,把自己的服務(wù)地址鏈接,服務(wù)名稱注冊上去
2.nacos server與服務(wù)提供者provider建立心跳機(jī)制,用來檢測服務(wù)狀態(tài)
3.服務(wù)消費(fèi)者consumer查詢出提供服務(wù)實(shí)例列表
4.并且默認(rèn)10s去nacos server拉取服務(wù)實(shí)例列表
5.當(dāng)服務(wù)消費(fèi)者檢測到服務(wù)異常,基于UDP協(xié)議推送更新
6.服務(wù)消費(fèi)者即可調(diào)用了

Nacos和Eureka的區(qū)別

CAP理論

C一致性,A高可用,P分區(qū)容錯性

  • eureka只支持AP

  • nacos支持CP和AP兩種
    nacos是根據(jù)配置識別CP或AP模式,如果注冊Nacos的client節(jié)點(diǎn)注冊時是ephemeral=true即為臨時節(jié)點(diǎn),那么Naocs集群對這個client節(jié)點(diǎn)效果就是AP,反之則是CP,即不是臨時節(jié)點(diǎn)

     #false為永久實(shí)例,true表示臨時實(shí)例開啟,注冊為臨時實(shí)例
     spring.cloud.nacos.discovery.ephemeral=true
    

連接方式

  1. nacs使用的是netty和服務(wù)直接進(jìn)行連接,屬于長連接
  2. eureka是使用定時發(fā)送和服務(wù)進(jìn)行聯(lián)系,屬于短連接

服務(wù)異常剔除

eureka:
Eureka client在默認(rèn)情況每隔30s想Eureka Server發(fā)送一次心跳,當(dāng)Eureka Server在默認(rèn)連續(xù)90s秒的情況下沒有收到心跳, 會把Eureka client 從注冊表中剔除,在由Eureka-Server 60秒的清除間隔,把Eureka client 給下線

 	EurekaInstanceConfigBean類下
 	private int leaseRenewalIntervalInSeconds = 30;  //心跳間隔30s
    private int leaseExpirationDurationInSeconds = 90;  //默認(rèn)90s沒有收到心跳從注冊表中剔除
 	EurekaServerConfigBean  類下
    private long evictionIntervalTimerInMs = 60000L; //異常服務(wù)剔除下線時間間隔

也就是在極端情況下Eureka 服務(wù) 從異常到剔除在到完全不接受請求可能需要 30s+90s+60s=3分鐘左右(還是未考慮ribbon緩存情況下)

nacos:
nacos client 通過心跳上報(bào)方式告訴 nacos注冊中心健康狀態(tài),默認(rèn)心跳間隔5秒,
nacos會在超過15秒未收到心跳后將實(shí)例設(shè)置為不健康狀態(tài),可以正常接收到請求
超過30秒nacos將實(shí)例刪除,不會再接收請求

操作實(shí)例方式

nacos:提供了nacos console可視化控制話界面,可以對實(shí)例列表進(jìn)行監(jiān)聽,對實(shí)例進(jìn)行上下線,權(quán)重的配置,并且config server提供了對服務(wù)實(shí)例提供配置中心,且可以對配置進(jìn)行CRUD,版本管理

eureka:僅提供了實(shí)例列表,實(shí)例的狀態(tài),錯誤信息,相比于nacos過于簡單

自我保護(hù)機(jī)制

相同點(diǎn):保護(hù)閾值都是個比例,0-1 范圍,表示健康的 instance 占全部instance 的比例。

不同點(diǎn):

1)保護(hù)方式不同

Eureka保護(hù)方式:當(dāng)在短時間內(nèi),統(tǒng)計(jì)續(xù)約失敗的比例,如果達(dá)到一定閾值,則會觸發(fā)自我保護(hù)的機(jī)制,在該機(jī)制下,Eureka Server不會剔除任何的微服務(wù),等到正常后,再退出自我保護(hù)機(jī)制。自我保護(hù)開關(guān)(eureka.server.enable-self-preservation: false)

Nacos保護(hù)方式:當(dāng)域名健康實(shí)例 (Instance) 占總服務(wù)實(shí)例(Instance) 的比例小于閾值時,無論實(shí)例 (Instance) 是否健康,都會將這個實(shí)例 (Instance) 返回給客戶端。這樣做雖然損失了一部分流量,但是保證了集群的剩余健康實(shí)例 (Instance) 能正常工作。

2)范圍不同

Nacos 的閾值是針對某個具體 Service 的,而不是針對所有服務(wù)的。但 Eureka的自我保護(hù)閾值是針對所有服務(wù)的。

有興趣的小伙伴可以加群,遇到問題可以一起討論

總結(jié)

以上是生活随笔為你收集整理的详解Nacos和Eureka的区别「建议收藏」(六十四卦详解)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。