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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

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

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

Eureka是什么

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

Eureka詳解

一個Eureka中分為eureka server和eureka clint,其中eurka server是作為服務的注冊與發現中心,eureka client既可以作為服務的生產者,又可以作為服務的消費者

Eurak2.0之后已經停止開源

Nacos是什么

Nacos是阿里巴巴最新開源的項目,提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理。更敏捷和容易地構建、交付和管理微服務平臺。

Nacos支持基于DNS和基于RPC的服務發現,動態配置服務(配置中心),動態DNS服務

Nacos詳解

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

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

Nacos和Eureka的區別

CAP理論

C一致性,A高可用,P分區容錯性

  • eureka只支持AP

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

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

連接方式

  1. nacs使用的是netty和服務直接進行連接,屬于長連接
  2. eureka是使用定時發送和服務進行聯系,屬于短連接

服務異常剔除

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

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

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

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

操作實例方式

nacos:提供了nacos console可視化控制話界面,可以對實例列表進行監聽,對實例進行上下線,權重的配置,并且config server提供了對服務實例提供配置中心,且可以對配置進行CRUD,版本管理

eureka:僅提供了實例列表,實例的狀態,錯誤信息,相比于nacos過于簡單

自我保護機制

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

不同點:

1)保護方式不同

Eureka保護方式:當在短時間內,統計續約失敗的比例,如果達到一定閾值,則會觸發自我保護的機制,在該機制下,Eureka Server不會剔除任何的微服務,等到正常后,再退出自我保護機制。自我保護開關(eureka.server.enable-self-preservation: false)

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

2)范圍不同

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

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。