推送與拉取是兩種不同系統間的通訊,這兩種方式解釋了資料生產者與資料消費者是如何進行資料互動的.
推送是資料生產者把生產的儲存的資料傳輸到資料消費者裡(消費者提供接收的介面),資料消費者是不知何時能接收到何時的資料,消費者接收到資料的時點是由資料生產者決定的.(業務時點可觸發,可定時)
拉取是資料消費者從資料生產者get資料來源,資料生產者只需要提供資料來源(提供資料來源的介面),不用關心,也不知道資料消費者何時獲取該資料.資料消費者決定獲取資料的時點(定時)
介面型別
資料生產者
資料消費者
拉取被動的:當被請求時提供資料來源。
主動的:決定何時請求去獲取資料。
推送主動的:按自己的時點(業務時點/定時時點)傳輸資料。
被動的:對收到的資料做出反應。
若果資料實時性要求比較強,可採用資料生產端推送.
訂單系統的訂單資料出庫後實時轉到售後系統生成派工單,工程師派工處理等.(由訂單系統推送到售後系統)
一些企業對派工效率要求比較高,提高服務效率,提公升品牌的服務口碑.若果讓售後系統定時主動獲取訂單系統出庫未派工資料,難以保證出庫資料的實時性和準確性,不停的輪詢抓取資料,也會導致系統有不必要的系統效能消耗.
若果資料實時性不強,宜採用資料消費端拉取資料.
訂單系統的發票資料開票回寫實時性要求不強,只需要開票中的發票資料定時取對應的資料進行開票狀態更新等相關操作.
不知道怎麼分析了.............
知道的幫忙補充下,謝謝!
介面型別
優點缺點
拉取1,減輕資料生產者端的系統壓力
1,容易發生漏拉取的資料,還難以發現具體明細資料
2,增加空輪詢,增加額外效能開銷
推送1,實時性高,資料消費者端能第一時間接收到最新資料
1,不能確保每次推送都成功被接收,需有未確認成功重推機制(資料生產者端複雜化)
2,資料消費者端每次被動接收非空資料,避免空輪詢的額外開銷,減少服務壓力
2,缺乏資料的多樣性,可能有比較大的資料冗餘存在.(資料消費者端無法根據自身需要固定要自身業務相關的資料字段)
3,資料消費者端介面簡單化
個人認為在實際工作中,同乙個介面應採用混合方式.混合式是同一介面指既有推送也有拉取!以推送為主,以拉取為輔!拉取資料為輔是指手動觸發拉取資料!
當開發時間充足,採取推送為主,達到資料時效性高,系統效能額外開銷減少!當系統推送部分資料異常導致區域性推送漏或者,接收資料方異常多次沒成功接收資料,需要人為觸發拉取資料以解決該異常問題!
考慮到開發周期問題,根據業務需求,系統架構等方面考慮,主要按照時間,效率,工作量,是否需求資料實時性特別高等再選擇介面採取哪種方式!不管是選用哪種形式,都要根據業務的特性來設計,合理地利用介面來實現業務,必要時選用管道、佇列、檢視、非同步、訊息佇列等方法。
感謝大家**!
如有錯誤請指出互相交流,讓小弟也學習學習,謝謝!
介面資料推拉模式特點比較分析
推拉模式 描述 資料生產方和資料消費方資料傳遞方式 推模式 資料生產方主動向資料消費方傳遞訊息,資料消費方提供資料接收介面 拉模式 資料生產方準備好資料倉儲,資料消費方主動發起呼叫程式去資料生產方的資料倉儲獲取資料 推拉模式特點比較圖表分析 條目 推模式拉模式 應用場景 業務對資料的實時性要求高 業...
資料庫的介面
目錄 1 資料庫的基礎知識以及建立access資料庫 2 資料庫的介面 3 使用ado或ado控制項訪問資料庫 2 資料庫介面 應用程式與資料庫之間的橋梁,完成對資料庫的操作。3 資料庫 存放資料的地方。使用者介面 資料庫介面與資料庫三者之間的關係是彼此相輔相成的 如圖 vb資料引擎介面有三種 資料...
資料庫的介面
目錄 1 資料庫的基礎知識以及建立access資料庫 2 資料庫的介面 3 使用ado或ado控制項訪問資料庫 2 資料庫介面 應用程式與資料庫之間的橋梁,完成對資料庫的操作。3 資料庫 存放資料的地方。使用者介面 資料庫介面與資料庫三者之間的關係是彼此相輔相成的 如圖 vb資料引擎介面有三種 資料...