<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>

          為什么需要注冊(cè)中心?是用 Eureka 還是 Nacos?

          共 2315字,需瀏覽 5分鐘

           ·

          2022-02-20 09:53

          為什么要使用注冊(cè)中心

          有使用過ip:port地址直接調(diào)用服務(wù)的開發(fā)經(jīng)歷么?該段痛苦的經(jīng)歷在此處省略500字......,該種方式的缺點(diǎn):

          使用注冊(cè)中心能夠?qū)崿F(xiàn)服務(wù)治理,服務(wù)動(dòng)態(tài)擴(kuò)容,以及服務(wù)調(diào)用的負(fù)載均衡,完整調(diào)用鏈路示例如下:

          • 服務(wù)提供者:向注冊(cè)中心根據(jù)服務(wù)名稱提供服務(wù)訪問的ip:port以及其他信息。
          • 注冊(cè)中心:根據(jù)服務(wù)名稱,存儲(chǔ)對(duì)應(yīng)的ip:port以及其他信息。
          • 服務(wù)消費(fèi)者:根據(jù)服務(wù)名向注冊(cè)中心獲取調(diào)用服務(wù)的ip:port以及其他相關(guān)的信息集合,然后根據(jù)負(fù)載均衡策略獲取最終的服務(wù)器ip:port訪問地址。

          使用springcloud時(shí),常用的是eureka和nacos作為注冊(cè)中心,如何選擇呢?

          Eureka注冊(cè)中心

          架構(gòu)原理圖如下:

          服務(wù)提供者

          主動(dòng)向注冊(cè)中心注冊(cè),續(xù)約,下線,獲取注冊(cè)表。服務(wù)注冊(cè)成功后,定時(shí)向注冊(cè)中心發(fā)送心跳,保證服務(wù)不被剔除。

          注冊(cè)中心

          存儲(chǔ)服務(wù)實(shí)例,定時(shí)掃描注冊(cè)表,剔除過期的服務(wù)實(shí)例。通過同步復(fù)制方式實(shí)現(xiàn)高可用,先獲取注冊(cè)表,然后再向其他注冊(cè)中心注冊(cè)自己,屬于AP模式。在實(shí)際項(xiàng)目中,會(huì)根據(jù)環(huán)境,例如dev,test,prod配置不同的注冊(cè)中心集群,如果不同的項(xiàng)目使用統(tǒng)一的注冊(cè)中心,只能根據(jù)服務(wù)名稱做區(qū)分。

          重點(diǎn)介紹一下Eureka自我保護(hù)機(jī)制。如果出現(xiàn)大量的服務(wù)實(shí)例過期被剔除,則注冊(cè)中心進(jìn)入自我保護(hù)模式,注冊(cè)表中信息不再被剔除,目的是提高eureka的可用性。默認(rèn)情況下,統(tǒng)計(jì)心跳失敗比例在 15 分鐘之內(nèi)是否低于 85%,如果低于 85%,Eureka Server 會(huì)將這些實(shí)例保護(hù)起來,讓這些實(shí)例不會(huì)過期。

          講述一次慘痛的上線經(jīng)歷,錯(cuò)誤描述如下:

          當(dāng)時(shí)服務(wù)部署成功,在Eureka注冊(cè)中心已經(jīng)顯示該服務(wù)已經(jīng)注冊(cè)成功,但是,前端請(qǐng)求經(jīng)過網(wǎng)關(guān)再轉(zhuǎn)發(fā)到該服務(wù)時(shí),一直就沒有反應(yīng),服務(wù)調(diào)用一直不成功。nginx轉(zhuǎn)發(fā),網(wǎng)關(guān)轉(zhuǎn)發(fā)都在確認(rèn)問題到底發(fā)生在哪里,幾經(jīng)折磨,在網(wǎng)關(guān)直接通過ip地址轉(zhuǎn)發(fā)到上線的服務(wù),快速的解決該問題

          后續(xù),復(fù)盤,應(yīng)該Eureka的自我保護(hù)機(jī)制,導(dǎo)致的問題。在注冊(cè)中心注冊(cè)的服務(wù)是一個(gè)不可用的服務(wù),但是,由于自我保護(hù)機(jī)制,Eureka Server沒有將無效的服務(wù)剔除。

          后續(xù)的解決方法是,設(shè)置enableSelfPreservation=false關(guān)閉自我保護(hù)機(jī)制,把renewalPercentThreshold 比例降低,在Eureka Server端,如果出現(xiàn)無效的服務(wù)就會(huì)將該服務(wù)剔除。

          nacos注冊(cè)中心

          nacos是springcloud的擴(kuò)展,注冊(cè)中心功能通過NacosDiscoveryClient 繼承DiscoveryClient,在springcloud中,與Eureka可以無侵入的切換。注冊(cè)中心可以手動(dòng)剔除服務(wù)實(shí)例,通過消息通知客戶端更新緩存的實(shí)例信息,完整調(diào)用鏈路示例如下:另外,關(guān)注互聯(lián)網(wǎng)架構(gòu)師,在后臺(tái)回復(fù):2T,可以獲取我整理的 架構(gòu)系列面試題和答案,非常齊全。

          在spring cloud中引入nacos時(shí),參考官網(wǎng)匹配具體的版本,如圖:

          nacos重點(diǎn)需要了解下其領(lǐng)域模型Nacos 數(shù)據(jù)模型 Key 由三元組唯一確定, Namespace命名空間,分組group,service服務(wù)。詳情可以參考官網(wǎng)Nacos 架構(gòu)。

          Nacos與Eureka相比優(yōu)勢(shì)如下:

          原文鏈接:https://blog.csdn.net/new_com/article/details/112633748

          相關(guān)閱讀:2T架構(gòu)師學(xué)習(xí)資料干貨分享


          全棧架構(gòu)社區(qū)交流群

          ?「全棧架構(gòu)社區(qū)」建立了讀者架構(gòu)師交流群,大家可以添加小編微信進(jìn)行加群。歡迎有想法、樂于分享的朋友們一起交流學(xué)習(xí)。

          掃描添加好友邀你進(jìn)架構(gòu)師群,加我時(shí)注明姓名+公司+職位】

          看完本文有收獲?請(qǐng)轉(zhuǎn)發(fā)分享給更多人


          往期資源:


          Flutter 移動(dòng)應(yīng)用開發(fā)實(shí)戰(zhàn) 視頻(開發(fā)你自己的抖音APP)
          Java面試進(jìn)階訓(xùn)練營 第2季(分布式篇)
          Java高級(jí) - 分布式系統(tǒng)開發(fā)技術(shù)視頻
          瀏覽 44
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(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>
                  日韩国产无码1区2区3区4区 | 亚洲无码天堂 | 久久久久久久久免费观看完整版 | 夜夜爽天天操 | 夜夜撸日日撸 |