微服務註冊中心如何承載每天千萬級的高併發訪問

2021-09-29 04:11:07 字數 2525 閱讀 2404

目錄:

一、問題起源

二、eureka server設計精妙的登錄檔儲存結構

三、eureka server端優秀的多級快取機制

四、總結

一、問題起源

spring cloud架構體系中,eureka是乙個至關重要的元件,它扮演著微服務註冊中心的角色,所有的服務註冊與服務發現,都是依賴eureka的。

不少初學spring cloud的朋友在落地公司生產環境部署時,經常會問:

如果你也有這些疑問,別著急!咱們這就一起去看看,eureka作為微服務註冊中心的核心原理

下面這些問題,大家先看看,有個大概印象。帶著這些問題,來看後面的內容,效果更佳

eureka註冊中心使用什麼樣的方式來儲存各個服務註冊時傳送過來的機器位址和埠號?

各個服務找eureka server拉取登錄檔的時候,是什麼樣的頻率?

各個服務是如何拉取登錄檔的?

乙個幾百服務,部署上千臺機器的大型分布式系統,會對eureka server造成多大的訪問壓力?

eureka server從技術層面是如何抗住日千萬級訪問量的?

先給大家說乙個基本的知識點,各個服務內的eureka client元件,預設情況下,每隔30秒會傳送乙個請求到eureka server,來拉取最近有變化的服務資訊

舉個例子

除此之外,eureka還有乙個心跳機制,各個eureka client每隔30秒會傳送一次心跳到eureka server,通知人家說,哥們,我這個服務例項還活著!

如果某個eureka client很長時間沒有傳送心跳給eureka server,那麼就說明這個服務例項已經掛了。

光看上面的文字,大家可能沒什麼印象。老規矩!咱們還是來一張圖,一起來直觀的感受一下這個過程。

二、eureka server設計精妙的登錄檔儲存結構

現在咱們假設手頭有一套大型的分布式系統,一共100個服務,每個服務部署在20臺機器上,機器是4核8g的標準配置。

也就是說,相當於你一共部署了100 * 20 = 2000個服務例項,有2000臺機器。

每台機器上的服務例項內部都有乙個eureka client元件,它會每隔30秒請求一次eureka server,拉取變化的登錄檔。

此外,每個服務例項上的eureka client都會每隔30秒傳送一次心跳請求給eureka server。

那麼大家算算,eureka server作為乙個微服務註冊中心,每秒鐘要被請求多少次?一天要被請求多少次?

好!經過這麼乙個測算,大家是否發現這裡的奧秘了?

按照我們的測算,乙個上百個服務,幾千臺機器的系統,按照這樣的頻率請求eureka server,日請求量在千萬級,每秒的訪問量在150次左右。

即使算上其他一些額外操作,我們姑且就算每秒鐘請求eureka server在200次~300次吧。

所以通過設定乙個適當的拉取登錄檔以及傳送心跳的頻率,可以保證大規模系統裡對eureka server的請求壓力不會太大。

關鍵問題來了,eureka server是如何保證輕鬆抗住這每秒數百次請求,每天千萬級請求的呢?

要搞清楚這個,首先得清楚eureka server到底是用什麼來儲存登錄檔的?三個字,看原始碼

接下來咱們就一起進入eureka原始碼裡一**竟:

一句話概括:維護登錄檔、拉取登錄檔、更新心跳時間,全部發生在記憶體裡!這是eureka server非常核心的乙個點。

搞清楚了這個,咱們再來分析一下registry這個東西的資料結構,大家千萬別被它複雜的外表唬住了,沉下心來,一層層的分析!

再來看看作為value的這個map:

map>

三、eureka server端優秀的多級快取機制

假設eureka server部署在4核8g的普通機器上,那麼基於記憶體來承載各個服務的請求,每秒鐘最多可以處理多少請求呢?

多級快取機制的優點是什麼?

四、總結

上述就是spring cloud架構中,eureka作為微服務註冊中心可以承載大規模系統每天千萬級訪問量的原理。

微服務 註冊中心的作用 微服務之註冊中心

一 概念 註冊中心這一概念在面向服務設計的架構中起著舉足輕重的作用,不論是在soa架構還是微服務架構之中,註冊中心的作用一句話概括就是存放和排程服務,實現服務和註冊中心,服務和服務之間的相互通訊。註冊中心可以說是微服務架構中的 通訊錄 它記錄了服務和服務位址的對映關係。在分布式架構中,服務會註冊到這...

微服務 Eureka註冊中心

我們來解決微服務的第一問題,服務的管理。服務中心對外提供服務,需要對外暴露自己的位址。而consumer 呼叫者 需要記錄服務提供者的位址。將來位址出現變更,還需要及時更新。這在服務較少的時候並不覺得有什麼,但是在現在日益複雜的網際網路環境,乙個專案肯定會拆分出十幾,甚至數十個微服務。此時如果還人為...

微服務之註冊中心對比

微服務化是當前一大趨勢,註冊中心則是微服務最基礎的元件,是之前組內安排的任務,於是把結果分享出來,本文對當前業界比較流行的微服務元件進行了調研,並作出了總結。當前對微服務元件的調研維度如下 社群生態熱度 易用性 效能 cap分布式特性 當前元件維護狀態 重點功能等。eureka netflix公司產...