Intro

如果您沒有看上一篇文章,建議您先移步到這里查看第一部分 上一次主要解決了基本的數(shù)據(jù)增量同步的問題,但仍然存在一些問題。 可能存在的主要問題:

  1. 大數(shù)據(jù)量傳輸時,數(shù)據(jù)在傳輸過程出現(xiàn)部分丟失,數(shù)據(jù)不完整

  2. 超大數(shù)據(jù)量需要同步,導(dǎo)致響應(yīng)時間過長而導(dǎo)致連接超時

針對以上可能出現(xiàn)的這兩個問題,需要對數(shù)據(jù)進(jìn)行校驗并且數(shù)據(jù)量超過一定量時進(jìn)行分批量傳輸, 本文將著手解決 數(shù)據(jù)校驗 和 數(shù)據(jù)分批次傳輸 這兩個問題。

同步流程概覽

結(jié)合之前的同步流程,加上數(shù)據(jù)校驗和分批次傳輸數(shù)據(jù),大概流程如下: 客戶端調(diào)用服務(wù)器端的 Pull 接口從服務(wù)器端拉取數(shù)據(jù), 如果本地版本號等于服務(wù)器端最新版本號,則已更新的最新版本, 如果本地版本小于服務(wù)器端最新的版本號,則拉取需要更新的數(shù)據(jù),服務(wù)器端返回數(shù)據(jù)的同時會返回本地傳輸?shù)臄?shù)據(jù)的一個校驗值, 客戶端獲取到服務(wù)器端響應(yīng)時先根據(jù)接收到的數(shù)據(jù)計算校驗值,計算出來之后與服務(wù)器端返回的校驗值進(jìn)行比較, 如果本地計算的校驗值與服務(wù)器端返回的校驗值一致則進(jìn)行更新客戶端本地數(shù)據(jù),不一致則視為無效

網(wǎng)友評論