目前采用方案为:
1. 服务器按照版本号将一张表( 1w 左右,约 2MB )数据生成 json 文件放到 oss 上面,客户端通过版本号对比去下载
2. 如果数据表改动数据较小则生成增量包,客户端则采用增量的方式去更新
存在的问题:
增量只会生成与最近一次全量包的对比数据,但由于客户端数据版本更新不及时,不能找到增量包,就只得去更新全量。例如服务器最近的版本号规则是 v3(全)-v4(全)-v5(增),客户端此时的版本为 v3,要更新到 v5,只得下载 v5 的全量包。那么当数据更新频繁时,客户端基本都是下载全量数据。
目前考虑的解决方案:
通过业务来拆分数据,将表数据按照业务等级拆分生成更新包,按照分级进行更新
通过数据改动日志记录方式(客户端判断逻辑比较复杂)
不知道还有什么其他好的方式?