架構師必備:實時對賬與離線對賬
背景 在跨系統之間的數據寫入場景下,上下游系統極有可能因為網絡超時/抖動、或寫本地DB與調外部接口不能同時成功等原因,而出現數據不一致的問題,因此需要有及時發現不一致問題、並自動修復的能力。下面結合筆者的經驗,把對賬做個總結。 需要注意的是,這裏提的對賬不特指資金對賬,而是跨系統的字段對賬,如B端與C端系統之間的對賬。 對賬的指標 判斷對賬是否做得好,主要看這幾個指標: 完備性:確保所有字段都
背景 在跨系統之間的數據寫入場景下,上下游系統極有可能因為網絡超時/抖動、或寫本地DB與調外部接口不能同時成功等原因,而出現數據不一致的問題,因此需要有及時發現不一致問題、並自動修復的能力。下面結合筆者的經驗,把對賬做個總結。 需要注意的是,這裏提的對賬不特指資金對賬,而是跨系統的字段對賬,如B端與C端系統之間的對賬。 對賬的指標 判斷對賬是否做得好,主要看這幾個指標: 完備性:確保所有字段都
大家好,我是Java烘焙師。如何更新緩存和DB、做到性能和一致性的取捨,是一個很常見的話題。下面結合筆者的經驗和思考,系統性地總結一下緩存更新模式,講透講明白。 1、旁路緩存(cache-aside) 實現方案 查詢:先查緩存,查不到緩存時再查DB,並把DB內容寫入緩存、設置合適的過期時間 更新:先更新DB,再刪緩存;做到極致則需引入延遲雙刪機制 之所以不是先刪緩存、再更新DB,是因為在這
大家好,我是Java烘焙師。為了避免突增流量引起服務雪崩,需要對接口、存儲資源做限流保護,根據系統負載情況設置合適的限流值。下面結合筆者的經驗和思考,對主要限流方案的選型做一下總結,本篇先看如何使用,下一篇再看背後的原理。 下面介紹幾種常見限流方案的使用方法、優缺點: 單機限流:Guava RateLimiter 同時支持單機限流、集羣限流:Sentinel 分佈式限流:Redisson