軟體設計套路之推拉模式
推、拉是兩種常見的資料分發模式。以微博為例:
-
推:發微博時,遍歷所有關注者,寫入資料到對應的關注者資料表裡。好處是,讀取時直接讀取資料庫即可,即用寫入時間換取讀取時間。壞處是:
- 如果微博發生變化,例如被刪除,則需要再次進行處理
- 如果關注者量非常大,寫入非常耗時,非常的消耗儲存
- 拉:使用者開始刷微博時,從所有關注的人的時間線裡,把距離上次看到的微博全部加載出來,這種模式的好處與壞處則推相反。
- 混合模式,使用一定的策略,混合上述兩種模式。
使用這兩種模式以及混合模式的系統還有:
- 朋友圈
- Linux網路收包時,可以由系統定時去polling,也可以由網絡卡發中斷訊號通知核心(前者的壞處是流量負載低時延遲大資料無法近實時被處理,後者的壞處是當流量負載高時,核心會被頻繁中斷)
- 當推送系統涉及到寫入群公告資訊時
- 訂閱中心等諸如此類的應用