成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一次 Eureka 服務下線太慢的慘痛經歷!

開發
發現是由于 Eureka 服務下線太慢,而仍然有大量的請求打進來導致的報錯。

這一天,忽然發現大量的告警,經過多番調查研究考察,發現是由于 Eureka 服務下線太慢,而仍然有大量的請求打進來導致的報錯

于是,又經過了大量詳細周密的考察和研究,終于找到了問題并且解決了。

為啥服務都下線了還會有那么多的請求一直進來呢?

吶,我們都知道 Eureka 是 AP 模型,其實根本原因在于 Eureka 使用了三級緩存來保存服務的實例信息。

如下圖所示:

圖片

我們的服務注冊的時候會和 server 保持一個心跳,這個心跳的時間是 30 秒,服務注冊之后,客戶端的實例信息保存到 Registry 服務注冊表當中,注冊表中的信息會立刻同步到 readWriteCacheMap 之中。

而客戶端如果感知到這個服務,要從 readOnlyCacheMap 去讀取,這個只讀緩存需要 30 秒的時間去從 readWriteCacheMap 中同步。

客戶端和 Ribbon 負載均衡 都保持一個本地緩存,都是 30 秒定時同步。

按照上面所說,我們來計算一下客戶端感知到一個服務下線極端的情況需要多久。

  1. 客戶端每隔 30 秒會發送心跳到服務端
  2. registry 保存了所有服務注冊的實例信息,他會和 readWriteCacheMap 保持一個實時的同步,而 readWriteCacheMap 和 readOnlyCacheMap 會每隔 30 秒同步一次。
  3. 客戶端每隔 30 秒去同步一次 readOnlyCacheMap 的注冊實例信息
  4. 考慮到如果使用 ribbon 做負載均衡的話,他還有一層緩存每隔 30 秒同步一次

如果說一個服務的正常下線,極端的情況這個時間應該就是 30+30+30+30 差不多 120 秒的時間了。

如果服務非正常下線,還需要靠每 60 秒執行一次的清理線程去剔除超過 90 秒沒有心跳的服務,那么這里的極端情況可能需要 3 次 60秒才能檢測出來,就是 180 秒的時間。

累計可能最長的感知時間就是:180 + 120 = 300 秒,5分鐘的時間,這個時間屬實有點夸張了,如果考慮到可能有些中間件畫蛇添足加了點啥清理的工作,這個時間簡直就是災難性的。

那有人就問了,我在 Eureka 控制臺看見服務上下線非常快啊,你這不跟我扯犢子嗎?

大哥啊,控制臺的顯示是直接獲取的 Registry 的信息,那肯定快啊,所以我們不能這樣來判斷。

那怎么解決呢,解決方案當然就是改這些時間了,這個時間需要根據實際生產的情況來判斷修改,這里僅提供一個示例。

圖片

修改 ribbon 同步緩存的時間為 3 秒:ribbon.ServerListRefreshInterval = 3000

修改客戶端同步緩存時間為 3 秒 :eureka.client.registry-fetch-interval-seconds = 3

心跳間隔時間修改為 3 秒:eureka.instance.lease-renewal-interval-in-seconds = 3

超時剔除的時間改為 9 秒:eureka.instance.lease-expiration-duration-in-seconds = 9

清理線程定時時間改為 5 秒執行一次:eureka.server.eviction-interval-timer-in-ms = 5000

同步到只讀緩存的時間修改為 3 秒一次:eureka.server.response-cache-update-interval-ms = 3000

需要注意的是這里的只讀緩存其實是可以關閉的,通過修改參數??eureka.server.use-read-only-response-cache = false??可以做到,

但是建議不要沒有太大必要不要這樣做,Eureka 本身就是 AP 模型,用它你就應該有這個覺悟了,另外這個配置只針對原生的 Eureka 生效,SpringCloud Eureka 是沒有的,必須一定會從 readOnlyCacheMap 去讀。

如果按照這個時間參數設置讓我們重新計算可能感知到服務下線的最大時間:

正常下線就是 3+3+3+3=12 秒,非正常下線再加 15 秒為 27 秒。

責任編輯:張燕妮 來源: 悟空聊架構
相關推薦

2012-08-28 09:21:59

Ajax查錯經歷Web

2023-03-29 09:36:32

2025-03-17 10:01:07

2021-12-06 19:29:17

LRU內存算法

2011-04-13 09:21:30

死鎖SQL Server

2016-12-06 09:34:33

線程框架經歷

2013-04-01 10:27:37

程序員失業

2013-01-17 10:31:13

JavaScriptWeb開發firebug

2021-04-13 18:17:48

Hbase集群配置

2018-05-30 11:09:41

memcache服務器故障

2021-01-22 05:35:19

Lvm模塊Multipath

2012-07-12 14:35:31

面試經歷

2015-04-28 15:31:09

2018-09-14 10:48:45

Java內存泄漏

2014-07-17 13:14:11

Linux服務器網卡

2017-11-09 09:06:29

流量暴增優化

2020-11-23 07:13:13

Nodejs源碼

2018-12-06 16:25:39

數據庫服務器線程池

2020-02-10 10:15:31

技術研發指標

2022-07-13 08:31:18

React問題排查
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品无码久久久久久国产 | 国产特一级黄色片 | 久久久精品一区 | 欧美久久大片 | 岛国av一区二区三区 | 国内av在线 | 欧产日产国产精品视频 | 亚洲欧美日韩网站 | 国产在线永久免费 | 免费在线看a | 中文字幕视频在线观看 | 国产精品成人久久久久 | 精品成人在线视频 | 亚洲成人网在线播放 | 久久久亚洲 | 欧美一区二区三区在线看 | 欧洲一级视频 | 中文字幕一二三 | 久久这里只有精品首页 | 麻豆国产一区二区三区四区 | 成人亚洲精品久久久久软件 | 欧美成人精品二区三区99精品 | 国产99久久久国产精品 | 国产日韩一区二区三免费高清 | 欧美精品久久久久 | 99re国产视频 | 日韩精品一区二区三区 | 亚洲精品在线免费观看视频 | 久久99精品久久久久久 | 久久区二区 | 在线欧美亚洲 | 99久久久久久久 | 日日爱av| 亚洲人成人一区二区在线观看 | 久久专区| 99国产视频 | av免费网址| 女同久久另类99精品国产 | 久久一级| 伊人精品在线 | 在线看片国产精品 |