一.背景
在項目中,經常需要依賴第三方服務,比如通過rpc接口查詢商品數據,然后把相關數據持久化到本系統數據庫。這樣會存在數據修改不同步的問題,因為賣家可以隨時修改商品屬性字段,但是下游系統如果不是實時查詢接口,都將面臨數據不同步這樣的情況。
二.常規解決方案
最簡單的做法可能是實時拉取數據,下游業務系統內存實時拉取數據再聚合完成相應的數據組裝。這樣就嚴重依賴上游接口,並且系統會出現很多冗余代碼。特別是不同系統都要依賴相同接口的時候,每個系統都會實現接口調用,開發維護成本較高,不便於管理。在現有部門系統中,都會依賴商品接口,分類接口,貨架組等等這些上游接口,這些接口都有一個共性,數據屬性容易改變,下游系統未能及時同步,並且每個系統可能需要同步的字段各不相同。這些都會導致部門各子系統功能代碼重復,相同或相關數據冗余存儲,嚴重依賴第三方接口,降低了系統的可用性。
三.數據閉環
隨着這樣的依賴接口越來越多,業務系統各自為政,后期項目開展和維護始終會受制於此。於是乎,數據閉環提上日程。但是,該怎么做呢? 個人愚見,可以借鑒數據倉庫建設來進行設計:
1.明確業務數據主題,元數據建模
2.實時(mq) or 定時異構同步元數據
3.內部數據清洗組合,生成業務數據
4.提供數據服務,賦能
這樣的做的好處是:
1.統一管理三方依賴服務
2.提供數據閉環服務,與第三系統解耦,提高系統可用性
3.按需提供數據服務,靈活性強
4.避免數據冗余存儲