Coinbase 將我們的用戶服務擴展到每秒超過 150 萬次身份讀取。 以下是我們的做法: - 我們將單一的用戶對象拆分為獨立的邏輯組,稱為 "Fragments"。 - 從單一的 MongoDB 集群遷移到使用 MongoDB 和 DynamoDB 的聯邦系統。 - 對於並發寫入,我們實施了樂觀並發控制 (OCC),它使用資源版本字段進行寫入的比較和交換,避免了緩慢的全局鎖。 - 為了在關鍵流程中提供強大的讀後寫保證,我們使用 "Freshness Tokens"。這些令牌在讀取請求中傳遞,以保證返回的數據至少與令牌相關聯的版本一樣新鮮,必要時繞過緩存。 - 我們引入了一種負載削減機制,當服務檢測到過載時,動態地將一部分進入流量轉向虛擬目標組,防止 MongoDB 死循環,並使服務能夠優雅地降級。 這種架構使我們能夠應對加密市場巨大的、不穩定的高峰,並具備成為 Coinbase 可以信賴的服務的韌性。