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

          為什么需要注冊中心?是用 Eureka 還是 Nacos?

          共 2204字,需瀏覽 5分鐘

           ·

          2021-12-18 12:43

          點擊關注公眾號,Java干貨及時送達

          為什么要使用注冊中心

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

          使用注冊中心能夠實現(xiàn)服務治理,服務動態(tài)擴容,以及服務調用的負載均衡,完整調用鏈路示例如下:

          • 服務提供者:向注冊中心根據(jù)服務名稱提供服務訪問的ip:port以及其他信息。
          • 注冊中心:根據(jù)服務名稱,存儲對應的ip:port以及其他信息。
          • 服務消費者:根據(jù)服務名向注冊中心獲取調用服務的ip:port以及其他相關的信息集合,然后根據(jù)負載均衡策略獲取最終的服務器ip:port訪問地址。

          使用springcloud時,常用的是eureka和nacos作為注冊中心,如何選擇呢?

          推薦一個 Spring Boot 基礎教程及實戰(zhàn)示例:https://github.com/javastacks/spring-boot-best-practice

          Eureka注冊中心

          架構原理圖如下:

          服務提供者

          主動向注冊中心注冊,續(xù)約,下線,獲取注冊表。服務注冊成功后,定時向注冊中心發(fā)送心跳,保證服務不被剔除。最新面試題整理好了,大家可以在Java面試庫小程序在線刷題。

          注冊中心

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

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

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

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

          后續(xù),復盤,應該Eureka的自我保護機制,導致的問題。在注冊中心注冊的服務是一個不可用的服務,但是,由于自我保護機制,Eureka Server沒有將無效的服務剔除。

          后續(xù)的解決方法是,設置enableSelfPreservation=false關閉自我保護機制,把renewalPercentThreshold 比例降低,在Eureka Server端,如果出現(xiàn)無效的服務就會將該服務剔除。Spring Boot 學習筆記分享給你。

          nacos注冊中心

          nacos是springcloud的擴展,注冊中心功能通過NacosDiscoveryClient 繼承DiscoveryClient,在springcloud中,與Eureka可以無侵入的切換。注冊中心可以手動剔除服務實例,通過消息通知客戶端更新緩存的實例信息,完整調用鏈路示例如下:

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

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

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

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

          版權聲明:本文為CSDN博主「iloveoverfly」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權協(xié)議,轉載請附上原文出處鏈接及本聲明。


          23 種設計模式實戰(zhàn)(很全)
          Log4j 2.x 再發(fā)版,正式解決核彈級漏洞!
          勁爆!Java 協(xié)程要來了。。。
          JetBrains 發(fā)布下一代 IDE,IDEA 可以扔了
          重磅!JDK 17 發(fā)布,正式免費。。
          面試官:Java 8 map 和 flatMap 的區(qū)別?
          終于!Spring Cloud 2021 正式發(fā)布。。
          推薦一款代碼神器,代碼量至少省一半!
          程序員精通各種技術體系,45歲求職難!
          重磅!Spring Boot 2.6 正式發(fā)布
          Spring Boot 學習筆記,這個太全了!



          關注Java技術棧看更多干貨



          獲取 Spring Boot 實戰(zhàn)筆記!
          瀏覽 44
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  91豆花视频在线 | 五月综合色 | 色屁屁TS人妖系列二区 | 91丨国产亚洲丨精品白丝 | 香丁五月在线 |