Skip to main content

Command Palette

Search for a command to run...

Series

Distributed System

  1. 分散式系統的堅韌之道:應對延遲、故障與衝突的容錯設計

    導論:為何分散式系統本質上是困難的 分散式系統是由多台獨立電腦組成,它們透過網路互相通訊與協調,共同呈現為一個單一、連貫的系統。從雲端服務、電子商務平台到現代資料庫,我們日常依賴的數位基礎設施幾乎都建構於其上。然而,這種架構的強大之處也正是其脆弱之源。當多個節點必須跨越網路合作時,便會立即面臨三大核心挑戰:不可靠的網路造成的訊息延遲與丟失、部分節點故障導致的服務中斷,以及多個節點同時操作引發的並行衝突。有效應對這些挑戰,確保系統的容錯性(Fault Tolerance)與正確性,是現代軟體架構的...

    Jan 4, 20262 min read
  2. 分散式交易:挑戰、解決方案與實務權衡

    簡介 在現代軟體架構中,「分散式交易」是一個既關鍵又極具挑戰性的概念。其核心目標非常明確:在一個跨越多個獨立網路節點的系統中,確保一組操作能夠以「全有或全無」(all-or-nothing)的原子性方式完成。隨著微服務、雲端原生架構的普及,單一應用程式被拆解為多個獨立運作的服務,這些服務各自擁有獨立的數據儲存。在這種模式下,一個業務流程(例如線上購物)可能需要同時更新多個服務的狀態,這使得理解並妥善處理分散式交易變得至關重要。然而,由於網路的不可靠性與個別節點的獨立故障,分散式交易的實作充滿了固...

    Jan 5, 20262 min read1
  3. 從 Martin Kleppmann 的批判到 Redisson 實戰:徹底搞懂分散式鎖與「時間」的陷阱

    導言:你也許並不擁有「現在」 在面試中,當被問到「如何實現分散式鎖?」時,90% 的候選人會自信地回答:「用 Redis 的 SETNX 或者 Redisson。」 但如果面試官追問:「如果你的 JVM 發生了 Full GC,導致鎖過期了,但你的程式還在執行,會發生什麼?」這時候,才是區分「碼農」與「工程師」的關鍵時刻。 今天,我不只是教你怎麼用 API,而是要帶你穿越 Martin Kleppmann 與 Redis 作者 Antirez 的那場世紀論戰,從哲學的高度看工程的實踐,手把手帶你...

    Jan 9, 20264 min read1