原文:Sentinel-Go 源碼系列(三)滑動時間窗口算法的工程實現

要說現在工程師最重要的能力,我覺得工程能力要排第一。 就算現在大廠面試經常要手撕算法,也是更偏向考查代碼工程實現的能力,之前在群里看到這樣的圖片,就覺得很離譜。 算法與工程實現 在 Sentinel Go 中,一個很核心的算法是流控 限流 算法。 流控可能每個人都聽過,但真要手寫一個,還是有些困難。為什么流控算法難寫 以我的感覺是算法和工程實現上存在一定差異,雖然算法好理解,但卻沒法照着實現。 舉 ...

2021-12-20 13:00 1 347 推薦指數:

查看詳情

Sentinel滑動窗口算法

在前面搞清楚了Sentinel的使用后,大致理了一下Sentinel的責任鏈,搞清楚了這個,基本就已經梳理清楚sentinel-core模塊的大部分內容,順着這條鏈路可以繼續梳理很多東西。 知其然、知其所以然。而閱讀源碼就是最好的知其所以然的方式。這一次找了一些空閑時間,捋了一下它的滑動 ...

Thu Dec 31 01:39:00 CST 2020 0 1254
Sentinel-Go 源碼系列(一)|開篇

大家好呀,打算寫一個 Go 語言組件源碼分析系列,一是為了能學習下 Go 語言,看下別人是怎么寫 Go 的,二是也掌握一個組件。 本次選擇了 Sentinel-Go,一是對 Java 版本的 Sentinel 算是有一些了解,也在生產上落地過,二是感覺他的代碼應該不會太復雜(僅僅是感覺),三是 ...

Tue Oct 19 20:40:00 CST 2021 0 324
滑動窗口算法

的傳輸,提高網絡吞吐量。   滑動窗口算法其實和這個是一樣的,只是用的地方場景不一樣,可以根據需要調整 ...

Sat Jan 02 18:26:00 CST 2021 0 1282
滑動窗口算法(一)

某日事不多,點開sentinel-core代碼學習,想看看qps、rt等是怎么統計的。 點開StatisticSlot類,發現里面是用DefaultNode增加qps,然后嘗試點開 DefaultNode->StatisticNode->ArrayMetric-> ...

Mon Dec 03 02:53:00 CST 2018 0 13656
滑動窗口算法

滑動窗口算法 滑動窗口算法可以用以解決數組/字符串的子元素問題,它可以將嵌套的循環問題,轉換為單循環問題,降低時間復雜度。 給定一個字符串,請你找出其中不含有重復字符的最長子串的長度。 輸入: s = "abcabcbb" 輸出: 3 解釋: 因為無重復字符的最長子串是 "abc ...

Sun Dec 13 01:26:00 CST 2020 0 734
滑動窗口算法(思想)

長度的子串都拿出來做自檢,時間復雜度會比較高。 使用滑動窗口的思想,對錯誤信息進行合理利用,可以有效 ...

Tue Jul 09 08:57:00 CST 2019 0 10980
滑動窗口算法思路

關於雙指針的方法,可能大家並不陌生,而滑動窗口算法,其實算是雙指針的一種實現方式,主要用於解決子串問題。並且在leetCode上起碼有10道以上的滑動窗口應用題目,難度均在middle和hard。因此,我本文也致力於闡述自己的想法,供大家互相學習。 首先滑動窗口算法,顧名思義,就是要維護 ...

Wed Aug 11 23:34:00 CST 2021 0 131
滑動窗口算法技巧

本文詳解「滑動窗口」這種高級雙指針技巧的算法框架,帶你秒殺幾道高難度的子字符串匹配問題。 LeetCode 上至少有 9 道題目可以用此方法高效解決。但是有幾道是 VIP 題目,有幾道題目雖不難但太復雜,所以本文只選擇點贊最高,較為經典的,最能夠講明白的三道題來講解。第一題為了讓讀者掌握算法模板 ...

Mon Feb 17 17:54:00 CST 2020 0 11401
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM