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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

重磅官宣:Nacos2.0性能提升10倍

發(fā)布時(shí)間:2024/9/3 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 重磅官宣:Nacos2.0性能提升10倍 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
簡介:?Nacos2.0 作為一個(gè)跨代版本,徹底解決了 Nacos1.X 的性能問題,將性能提升了 10 倍。

作者:席翁


繼 Nacos 1.0 發(fā)布以來,Nacos 迅速被成千上萬家企業(yè)采用,并構(gòu)建起強(qiáng)大的生態(tài)。 但是隨著用戶深入使用,逐漸暴露一些性能問題,因此我們啟動(dòng)了 Nacos 2.0 的隔代產(chǎn)品設(shè)計(jì),時(shí)隔半年我們終于將其全部實(shí)現(xiàn),實(shí)測性能提升10倍,相信能滿足所有用戶的性能需求。下面由我代表社區(qū)為大家介紹一下這款跨代產(chǎn)品。


Nacos 簡介


Nacos 是一個(gè)更易于構(gòu)建云原生應(yīng)用的動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺。它 孵化于 阿里巴巴,成長于十年雙十一的洪峰考驗(yàn),沉淀了簡單易用、穩(wěn)定可靠、性能卓越的核心競爭力。



Nacos 2.0 架構(gòu)


全新2.0 架構(gòu)不僅將性能大幅提升10倍,而且內(nèi)核進(jìn)行了分層抽象,并且實(shí)現(xiàn)插件擴(kuò)展機(jī)制。


Nacos 2.0 架構(gòu)層次如下圖,它相比Nacos1.X的最主要變化是:


  • 通信層統(tǒng)一到gRPC協(xié)議,同時(shí)完善了客戶端和服務(wù)端的流量控制和負(fù)載均衡能力,提升的整體吞吐。
  • 將存儲和一致性模型做了充分抽象分層,架構(gòu)更簡單清晰,代碼更加健壯,性能更加強(qiáng)悍。
  • 設(shè)計(jì)了可拓展的接口,提升了集成能力,如讓用戶擴(kuò)展實(shí)現(xiàn)各自的安全機(jī)制。




Nacos2.0 服務(wù)發(fā)現(xiàn)升級一致性模型


Nacos2架構(gòu)下的服務(wù)發(fā)現(xiàn),客戶端通過Grpc,發(fā)起注冊服務(wù)或訂閱服務(wù)的請求。服務(wù)端使用Client對象來記錄該客戶端使用Grpc連接發(fā)布了哪些服務(wù),又訂閱了哪些服務(wù),并將該Client進(jìn)行服務(wù)間同步。由于實(shí)際的使用習(xí)慣是服務(wù)到客戶端的映射,即服務(wù)下有哪些客戶端實(shí)例;因此2.0的服務(wù)端會通過構(gòu)建索引和元數(shù)據(jù),快速生成類似1.X中的Service信息,并將Service的數(shù)據(jù)通過Grpc Stream進(jìn)行推送。



Nacos2.0 配置管理升級通信機(jī)制


配置管理之前用Http1.1的Keep Alive模式30s發(fā)一個(gè)心跳模擬長鏈接,協(xié)議難以理解,內(nèi)存消耗大,推送性能弱,因此2.0通過gRPC徹底解決這些問題,內(nèi)存消耗大量降低。



Nacos2.0 架構(gòu)優(yōu)勢


Nacos2.0大幅降低了資源消耗,提升吞吐性能,優(yōu)化客戶端和服務(wù)端交互,對用戶更加友好;雖然可觀測性略微下降,但是整體性價(jià)比非常高。



Nacos2.0 性能提升


由于Nacos由服務(wù)發(fā)現(xiàn)和配置管理兩大模塊構(gòu)成,業(yè)務(wù)模型略有差異,因此我們下面分別介紹一下具體壓測指標(biāo)。


Nacos2.0 服務(wù)發(fā)現(xiàn)的性能提升


服務(wù)發(fā)現(xiàn)場景我們主要關(guān)注客戶端數(shù),服務(wù)數(shù)實(shí)例數(shù),及服務(wù)訂閱者數(shù)在大規(guī)模場景下,服務(wù)端在推送及穩(wěn)定狀態(tài)時(shí)的性能表現(xiàn)。同時(shí)還關(guān)注在有大量服務(wù)在進(jìn)行上下線時(shí),系統(tǒng)的性能表現(xiàn)。


容量及穩(wěn)定狀態(tài)測試

該場景主要關(guān)注隨著服務(wù)規(guī)模和客戶端實(shí)例規(guī)模上漲,系統(tǒng)性能表現(xiàn)。


可以看到2.0.0版本在10W級客戶端規(guī)模下,能夠穩(wěn)定的支撐,在達(dá)到穩(wěn)定狀態(tài)后,CPU的損耗非常低。雖然在最初的大量注冊階段,由于存在瞬時(shí)的大量注冊和推送,因此有一定的推送超時(shí),但是會在重試后推送成功,不會影響數(shù)據(jù)一致性。

反觀1.X版本,在10W、5W級客戶端下,服務(wù)端完全處于Full GC狀態(tài),推送完全失敗,集群不可用;在2W客戶端規(guī)模下,雖然服務(wù)端運(yùn)行狀態(tài)正常,但由于心跳處理不及時(shí),大量服務(wù)在摘除和注冊階段反復(fù)進(jìn)行,因此達(dá)不到穩(wěn)定狀態(tài),CPU一直很高。1.2W客戶端規(guī)模下,可以穩(wěn)定運(yùn)行,但穩(wěn)態(tài)時(shí)CPU消耗是更大規(guī)模下2.0的3倍以上。


頻繁變更測試

該場景主要關(guān)注業(yè)務(wù)大規(guī)模發(fā)布,服務(wù)頻繁推送條件下,不同版本的吞吐和失敗率。


頻繁變更時(shí),2.0和1.X在達(dá)到穩(wěn)定狀態(tài)后,均能穩(wěn)定支撐,其中2.0由于不再有瞬時(shí)的推送風(fēng)暴,因此推送失敗率歸0,而1.X的UDP推送的不穩(wěn)定性導(dǎo)致了有極小部分推送出現(xiàn)了超時(shí),需要重試推送。



Nacos2.0 配置管理的性能提升


由于配置是少寫多讀場景,所以瓶頸主要在單臺監(jiān)聽的客戶端數(shù)量以及配置的推送獲取上,因此配置管理的壓測性能主要集中于單臺服務(wù)端的連接數(shù)量以及大量推送的比較。



Nacos2.0 連接容量測試

該場景主要關(guān)注不同客戶端規(guī)模下的系統(tǒng)壓力。


Nacos2.0 最高單機(jī)能夠支撐4.2w個(gè)配置客戶端連接,在連接建立的階段,有大量訂閱請求需要處理,因此CPU消耗較高,但達(dá)到穩(wěn)態(tài)后,CPU的消耗會變得很低。幾乎沒有消耗。

反觀Nacos1.X, 在客戶端6000時(shí),穩(wěn)定狀態(tài)的CPU一直很高,且GC頻繁,主要原因是長輪訓(xùn)是通過hold請求來保持連接,每30s需要回一次 Response并且重新發(fā)起連接和請求。需要做大量的上下文切換,同時(shí)還需要持有所有Request 和 Response。當(dāng)規(guī)模達(dá)到1.2w客戶端時(shí),已經(jīng)無法達(dá)到穩(wěn)態(tài),所以無法支撐這個(gè)量級的客戶端數(shù)。


Nacos2.0 頻繁推送測試

該場景關(guān)注不同推送規(guī)模下的系統(tǒng)表現(xiàn)。


在頻繁變更的場景,兩個(gè)版本都處于6000個(gè)客戶端連接中。明顯可以發(fā)現(xiàn)2.0版本的性能損耗要遠(yuǎn)低于1.X版本。 在3000tps的推送場景下,優(yōu)化程度約優(yōu)化了3倍。


Nacos2.0 性能結(jié)論


針對服務(wù)發(fā)現(xiàn)場景,Nacos2.0能夠在10W級規(guī)模下,穩(wěn)定運(yùn)行;相比Nacos1.X版本的1.2W規(guī)模,提升約10倍。


針對配置管理場景,Nacos2.0單機(jī)最高能夠支撐4.2W個(gè)客戶端連接;相比Nacos1.X,提升了7倍。且推送時(shí)的性能明顯好于1.X。



Nacos生態(tài)及2.X后續(xù)規(guī)劃


隨著Nacos三年的發(fā)展,幾乎支持了所有開源的RPC框架和微服務(wù)生態(tài),并且引領(lǐng)云原生微服務(wù)生態(tài)發(fā)展。


Nacos在整個(gè)微服務(wù)生態(tài)中非常核心的組件,它可以無縫和K8s服務(wù)發(fā)現(xiàn)體系互通,通過MCP/XDS協(xié)議與Istio通信將Nacos服務(wù)下發(fā)Sidecar;同樣也可以和CoreDNS聯(lián)合,將Nacos服務(wù)通過域名模式暴露給下游調(diào)用。


Nacos目前已經(jīng)和各類微服務(wù)RPC框架融合,進(jìn)行服務(wù)發(fā)現(xiàn);另外可以協(xié)助高可用框架Sentinel進(jìn)行各類管理規(guī)則的控制和下發(fā)。


如果只使用RPC框架,有時(shí)候并不足夠簡單,因?yàn)椴糠諶PC框架比如Grpc和Thrift,還需要自行啟動(dòng)Server并告知client該調(diào)用哪個(gè)IP。 這時(shí)候就需要和應(yīng)用框架進(jìn)行融合,比如SCA、Dapr等;當(dāng)然也可以通過Envoy Sidecar來進(jìn)行流量控制,應(yīng)用層的RPC就不需要知道服務(wù)的ip列表了。


最后,Nacos還可以和各類微服務(wù)網(wǎng)關(guān)打通,實(shí)現(xiàn)接入層的分發(fā)和微服務(wù)調(diào)用。


Nacos 生態(tài)在阿里的實(shí)踐


目前Nacos已經(jīng)完成了自研、開源、商業(yè)化三位一體的建設(shè),阿里內(nèi)部的釘釘、考拉、餓了么、優(yōu)酷等業(yè)務(wù)域已經(jīng)全部采用云產(chǎn)品MSE中的Nacos服務(wù),并且將阿里和云原生的技術(shù)棧無縫整合。 下面我們以釘釘為例簡單做一下介紹。


Nacos運(yùn)行在 微服務(wù)引擎MSE(全托管的Nacos集群) 上,進(jìn)行維護(hù)和多集群管理;業(yè)務(wù)的各類Dubbo3或HSF服務(wù)在啟動(dòng)時(shí)通過Dubbo3自身注冊到Nacos集群中;然后Nacos通過MCP協(xié)議將服務(wù)信息同步到Istio和Ingress-Envoy網(wǎng)關(guān)。


用戶流量從北向進(jìn)入集團(tuán)的VPC網(wǎng)絡(luò)中,先通過一個(gè)統(tǒng)一接入Ingress-Tengine網(wǎng)關(guān),他可以將域名解析并路由到不同的機(jī)房,單元等。本周我們也同步更新了 Tengine 2.3.3 版本,內(nèi)核升級到Nginx Core 1.18.0 ,支持Dubbo協(xié)議 ,支持DTLSv1和DTLSv1.2,支持Prometheus格式,從而提升阿里云微服務(wù)生態(tài)完整性、安全性、可觀測性。


通過統(tǒng)一接入層網(wǎng)關(guān)后,用戶請求會通過Ingress-Envoy微服務(wù)網(wǎng)關(guān),轉(zhuǎn)發(fā)到對應(yīng)的微服務(wù)中,并進(jìn)行調(diào)用。如果需要調(diào)用到其他網(wǎng)絡(luò)域的服務(wù),會通過Ingress-Envoy微服務(wù)網(wǎng)關(guān)將流量導(dǎo)入到對應(yīng)的VPC網(wǎng)絡(luò)中,從而打通不同安全域、網(wǎng)絡(luò)域和業(yè)務(wù)域的服務(wù)。


微服務(wù)之間的相互調(diào)用,會通過Envoy Sidecar或傳統(tǒng)的微服務(wù)自訂閱的方式進(jìn)行。最終,用戶請求在各個(gè)微服務(wù)的互相調(diào)用中,完成并返回給用戶。


Nacos 2.X的規(guī)劃


Nacos2.X將在2.0解決性能問題的基礎(chǔ)上,通過插件化實(shí)現(xiàn)新的功能并改造大量舊功能,使得Nacos能夠更方便,更易于拓展。


總結(jié)


Nacos2.0作為一個(gè)跨代版本,徹底解決了Nacos1.X的性能問題,將性能提升了10倍。并且通過抽象和分層讓架構(gòu)更加簡單,通過插件化更好的擴(kuò)展,讓Nacos能夠支持更多場景,融合更廣生態(tài)。相信Nacos2.X在后續(xù)版本迭代后,會更加易用,解決更多微服務(wù)問題,并向著Mesh化進(jìn)行更深入地探索。


加入我們


歡迎在 Nacos github ?上提交 Issue 與 PR 進(jìn)行討論和貢獻(xiàn),或加入Nacos社區(qū)群參與社區(qū)討論。也趁此機(jī)會感謝參與 Nacos 貢獻(xiàn)的 200+小伙伴! 感謝你們對中國開源事業(yè)的推動(dòng) !


除了參與開源,我們也歡迎更多有能力及有意愿的同學(xué)加入阿里云共建云原生,詳情請點(diǎn)擊職位鏈接。



原文鏈接:https://developer.aliyun.com/article/783139?

版權(quán)聲明:本文內(nèi)容由阿里云實(shí)名注冊用戶自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,阿里云開發(fā)者社區(qū)不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。具體規(guī)則請查看《阿里云開發(fā)者社區(qū)用戶服務(wù)協(xié)議》和《阿里云開發(fā)者社區(qū)知識產(chǎn)權(quán)保護(hù)指引》。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,填寫侵權(quán)投訴表單進(jìn)行舉報(bào),一經(jīng)查實(shí),本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。

總結(jié)

以上是生活随笔為你收集整理的重磅官宣:Nacos2.0性能提升10倍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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