從 ChatGPT 問世以來聽到太多「軟體工程師已死」的雜訊,但就我看來並非如此,AI 當然會在不久的將來取代掉一部分軟體開發的需求,然而這正代表著軟體工程師思維迭代的契機,以往需要捲起袖子幹的「髒活」由 AI 代勞後,我們有更多的時間與精力來做更高層次的規劃、設計。因此,身為介於 Junior to Mid-level SE 的我,必須及早開始培養系統設計的素養,成為不會被時代淘汰的軟體工程師。這次的參賽目的旨在內化面試常見的系統設計經典案例,期許自己不僅可以熟知書中的理論知識,也可將基礎卻必要的組件實作出來,並且融會貫通、知曉其背後的脈絡與推演邏輯。
前言 Hello,大家好,我是一名年資屆滿兩年的後端工程師,今年是首次參加 iThome 的鐵人賽,剛好最近開始為了年底的面試在做準備,希望藉由這個機會帶來更大...
回顧 延續上回 Lab 1 的實作,我們已經創建了一套最基本、用固定窗口計數算法實現的限流器,從過程中可以得知固定窗口是個十分簡單、易於快速開發的算法,但它的局...
前言 前兩天我們已經實作完「固定窗口」跟「滑動窗口」計數器這兩個好兄弟了,接下來要實作的 Token Bucket 以及 Leaky Bucket 從根本的設計...
前言 前一篇提到了跟時間窗口特色迥異的 Token Bucket 算法,今天要來介紹的是另一個 Bucket 算法,Leaky Bucket 實作起來跟 Tok...
前言 到了第五天終於把前面開頭幾個限流算法介紹並實作完了,其實實作到一半時有點心虛,覺得是不是應該要把重點放在系統架構的設計,而不是太 Detail 的算法邏輯...
回顧 經過上一篇文章我們了解到在微服務的架構下,統一管理請求基本信息的重要性,在 API Gateway 提取請求信息並妥善管理可以大大降低業務邏輯實作的複雜度...
前言:現有單體架構的侷限 我們目前架構使用的 MemoryRateLimiterStorage 計數器,所有的限流狀態、計次,都存在 JVM 的記憶體中: pr...
前言 今天我們將實作如何從零開始配置 Redis Client 到 SpringBoot 模組。現在目前使用 JVM 記憶體儲存實現限流功能,接下幾天將整合 R...
前言 昨天我們已經在 SpringBoot 專案內完成了 Redis Client 的基本配置,今天實際用固定窗口計數器來整合 Redis 分散式儲存限流計數的...
回顧 今天是鐵人賽的第 10 天,老實說從決定報名那刻起就沒覺得這是一件輕鬆的事,還沒寫以前不會知道剛開始定的內容實際寫起來的範圍會是多少,原本還想做 4 種系...