<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Nacos 2.0正式發(fā)布,性能大幅提升數(shù)倍!

          共 4478字,需瀏覽 9分鐘

           ·

          2021-03-24 11:37

          Nacos 項(xiàng)目起源于阿里巴巴內(nèi)部的五彩石項(xiàng)目,從 2008 年開始,就已經(jīng)在內(nèi)部孵化了。近年來受 Eureka、Consul 等項(xiàng)目的影響,Nacos 越來越受歡迎!

          目前 Nacos 支持主流微服務(wù)開發(fā)語言&主流服務(wù)框架和配置管理框架,比如支持 Duboo、SpringCloud、SCA,還對接了一些云原生的組件比如 coreDNS 和 sentinel 等。

          客戶端語言方面目前支持 Java,go python 等主流語言,最近剛發(fā)布正式版本的還支持 C# 和 C++。

          最近 Nacos 更新動(dòng)作頻頻,Nacos 2.X 版本迎來了首秀,在 1.X 的架構(gòu)基礎(chǔ)上 新增了對長連接模型的支持。通信層目前通過 grpc 實(shí)現(xiàn)了長連接 RPC 調(diào)用和推送能力,使用長鏈接的好處大幅度減少了 1.x 輪詢心跳頻繁導(dǎo)致 JVM Full GC。

          1.X架構(gòu)存在的問題

          接下來看一下 Nacos1.X 架構(gòu)所面臨的幾個(gè)比較重要的問題。

          一句話總結(jié),心跳多,無效查詢多,心跳續(xù)約感知變化慢,連接消耗大,資源空耗嚴(yán)重。

          1. 心跳數(shù)量多,導(dǎo)致 TPS 居高不下

          通過心跳續(xù)約,當(dāng)服務(wù)規(guī)模上升時(shí),特別是類似 Dubbo 的接口級(jí)服務(wù)較多時(shí),心跳及配置元數(shù)據(jù)的輪詢數(shù)量眾多,導(dǎo)致集群 TPS 很高,系統(tǒng)資源高度空耗。

          1. 通過心跳續(xù)約感知服務(wù)變化,時(shí)延長

          心跳續(xù)約需要達(dá)到超時(shí)時(shí)間才會(huì)移除并通知訂閱者,默認(rèn)為 15 s,時(shí)延較長,時(shí)效性差。若改短超時(shí)時(shí)間,當(dāng)網(wǎng)絡(luò)抖動(dòng)時(shí),會(huì)頻繁觸發(fā)變更推送,對客戶端服務(wù)端都有更大損耗。

          1. UDP 推送不可靠,導(dǎo)致 QPS 居高不下

          由于 UDP 不可靠,因此客戶端測需要每隔一段時(shí)間進(jìn)行對賬查詢,保證客戶端緩存的服務(wù)列表的狀態(tài)正確,當(dāng)訂閱客戶端規(guī)模上升時(shí),集群 QPS 很高,但大多數(shù)服務(wù)列表其實(shí)不會(huì)頻繁改變,造成無效查詢,從而存在資源空耗。

          1. 基于 HTTP 短連接模型,TIME_WAIT 狀態(tài)連接過多

          HTTP 短連接模型,每次客戶端請求都會(huì)創(chuàng)建和銷毀 TCP 鏈接,TCP 協(xié)議銷毀的鏈接狀態(tài)是 WAIT_TIME,完全釋放還需要一定時(shí)間,當(dāng) TPS 和 QPS 較高時(shí),服務(wù)端和客戶端可能有大量的 WAIT_TIME 狀態(tài)鏈接,從而會(huì)導(dǎo)致 connect time out 錯(cuò)誤或者 Cannot assign requested address 的問題。

          1. 配置模塊的 30 秒長輪詢引起的頻繁 GC

          配置模塊使用 HTTP 短連接阻塞模型來模擬長連接通信,但是由于并非真實(shí)的長連接模型,因此每 30 秒需要進(jìn)行一次請求和數(shù)據(jù)的上下文切換,每一次切換都有引起造成一次內(nèi)存浪費(fèi),從而導(dǎo)致服務(wù)端頻繁 GC。

          Nacos 2.x 架構(gòu)的優(yōu)缺點(diǎn)

          前面簡要介紹了 Nacos 2.x 的架構(gòu)和新模型的工作方式,接下來我們分析一下這樣的改動(dòng)有哪些優(yōu)缺點(diǎn)。

          優(yōu)點(diǎn)

          1. 客戶端不再需要定時(shí)發(fā)送實(shí)例心跳,只需要有一個(gè)維持連接可用 keepalive 消息即可。重復(fù) TPS 可以大幅降低。

          2. TCP 連接斷開可以被快速感知到,提升反應(yīng)速度。

          3. 長連接的流式推送,比 UDP 更加可靠;nio 的機(jī)制具有更高的吞吐量,而且由于可靠推送,可以加長客戶端用于對賬服務(wù)列表的時(shí)間,甚至刪除相關(guān)的請求。重復(fù)的無效 QPS 可以大幅降低。

          4. 長連接避免頻繁連接開銷,可以大幅緩解 TIME_ WAIT 問題。

          5. 真實(shí)的長連接,解決配置模塊 GC 問題。

          6. 更細(xì)粒度的同步內(nèi)容,減少服務(wù)節(jié)點(diǎn)間的通信壓力。

          缺點(diǎn)

          沒有銀彈的方案,新架構(gòu)也會(huì)引入一些新問題

          1. 內(nèi)部結(jié)構(gòu)復(fù)雜度上升,管理連接狀態(tài),連接的負(fù)載均衡需要管理。

          2. 數(shù)據(jù)由原來的無狀態(tài),變?yōu)榕c連接綁定的有狀態(tài)數(shù)據(jù),流程鏈路更長。

          3. RPC 協(xié)議的觀測性不如 HTTP。即使 gRPC 基于 HTTP2.0 Stream 實(shí)現(xiàn),仍然不如直接使用 HTTP 協(xié)議來的直觀。

          性能提升

          Nacos 2.x 服務(wù)發(fā)現(xiàn)性能測試都是針對重點(diǎn)功能,通過對 3 節(jié)點(diǎn)規(guī)模集群進(jìn)行壓測,可以看到接口性能負(fù)載和容量,以及對比相同/類似場景下 Nacos1.X 版本的提升。

          • 壓測時(shí)服務(wù)及實(shí)例容量達(dá)到百萬級(jí),集群運(yùn)行持續(xù)穩(wěn)定,達(dá)到預(yù)期;(該場景沒有計(jì)算頻繁變更導(dǎo)致的頻繁推送內(nèi)容,僅單純計(jì)算容量上線,附帶推送的真實(shí)場景將在下輪壓測報(bào)告中給出)
          • 注冊/注銷實(shí)例 TPS 達(dá)到 26000 以上,總體較 Nacos1.X 提升至少 2 倍,接口達(dá)到預(yù)期;
          • 查詢實(shí)例 TPS 能夠達(dá)到 30000 以上,總體較 Nacos1.X 提升 3 倍左右,接口達(dá)到預(yù)期;

          兼容性

          配置中心

          • 完全兼容 1.X 客戶端所有 API 接口方法
          • 完全實(shí)現(xiàn) 2.X 客戶端所有 API 接口方法
          • 完全兼容所有配置中心相關(guān) openAPI

          服務(wù)發(fā)現(xiàn)

          由于服務(wù)發(fā)現(xiàn)的數(shù)據(jù)模型發(fā)生了比較重大的改變,因此以下功能暫時(shí)未支持。

          • 查看當(dāng)前集群 leader(將廢棄)
          • 批量更新實(shí)例元數(shù)據(jù)(Beta,不支持)
          • 批量刪除實(shí)例元數(shù)據(jù)(Beta,不支持)

          控制臺(tái)

          • 完全兼容配置中心相關(guān)頁面及功能
          • 完全兼容權(quán)限控制相關(guān)頁面及功能
          • 完全兼容命名空間相關(guān)頁面及功能
          • 完全兼容集群管理相關(guān)頁面及功能
          • 完全兼容服務(wù)發(fā)現(xiàn)相關(guān)頁面及功能

          Spring Cloud Alibaba 適配

          由于目前 Spring cloud alibaba 2.2.5 版本內(nèi)置的 nacos-client 為 1.4.1,可通過指定 nacos-client 方式,提前使用 Nacos2.0 長連接功能。

          <dependency>
              <groupId>com.alibaba.cloud</groupId>
              <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
              <version>2.2.5.RELEASE</version>
              <exclusions>
                  <exclusion>
                      <groupId>com.alibaba.nacos</groupId>
                      <artifactId>nacos-client</artifactId>
                  </exclusion>
              </exclusions>
          </dependency>
          <dependency>
              <groupId>com.alibaba.cloud</groupId>
              <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
              <version>2.2.5.RELEASE</version>
              <exclusions>
                  <exclusion>
                      <groupId>com.alibaba.nacos</groupId>
                      <artifactId>nacos-client</artifactId>
                  </exclusion>
              </exclusions>
          </dependency>
          <dependency>
              <groupId>com.alibaba.nacos</groupId>
              <artifactId>nacos-client</artifactId>
              <version>2.0.0</version>
          </dependency>

          最后,期待大家搶先體驗(yàn),幫助發(fā)現(xiàn)修復(fù) bug,改善社區(qū),貢獻(xiàn)智慧,參與 Nacos 開源社區(qū)建設(shè)!

          推薦閱讀

          這么美好的夜晚,搞點(diǎn)不一樣的!

          從零搭建SpringCloud服務(wù)(史上最詳細(xì))

          公司高管寫出低級(jí)Bug,導(dǎo)致公司70GB數(shù)據(jù)泄露

          955 互聯(lián)網(wǎng)公司白名單來了!這些公司月薪20k,沒有996!福利榜國內(nèi)大廠只有這家!

          ?一個(gè)完整的、全面k8s化的集群穩(wěn)定架構(gòu)(值得借鑒)

          ? 2020年國內(nèi)互聯(lián)網(wǎng)公司的薪酬排名!

          ?  基于SpringBoot 的CMS系統(tǒng),拿去開發(fā)企業(yè)官網(wǎng)真香

           深度介紹分布式系統(tǒng)原理與設(shè)計(jì)

           程序員因違反竟業(yè)協(xié)議,賠騰訊97.6萬...

          阿里一面:如何保證API接口數(shù)據(jù)安全?

          徒手?jǐn)]了一個(gè)RPC框架,理解更透徹了,代碼已上傳github,自取~

          一個(gè)完整的外賣系統(tǒng)





          瀏覽 67
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久草色香蕉视频 | 99在线视频精品 | www.五月婷婷 | 色福利视频 | 日韩一级品电影 |