Foxtable(狐表)用户栏目专家坐堂 → 征集讨论,离线同步方案


  共有17600人关注过本帖树形打印复制链接

主题:征集讨论,离线同步方案

帅哥哟,离线,有人找我吗?
qtcks
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:485 积分:3926 威望:0 精华:6 注册:2009/3/29 13:25:00
征集讨论,离线同步方案  发帖心情 Post By:2009/6/14 9:00:00 [显示全部帖子]

说明:架构分为,远程数据中心与本地数据.
在断网的情况下.数据保存在本地.
联网后,数据同步到远程数据中心.
关键点.数据如何同步.
如,新增商品信息的编码.如何控制.
订单类的,自动编号可以与操作员的iD挂钩.这样就没有问题.
主要点,就是唯一的数据.产品信息\仓库id\等.


 回到顶部
帅哥哟,离线,有人找我吗?
qtcks
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:485 积分:3926 威望:0 精华:6 注册:2009/3/29 13:25:00
  发帖心情 Post By:2009/6/14 11:22:00 [显示全部帖子]

网上找寻的一篇文章
一、数据同步方式

1、哪些数据需要同步

(1)  新增的数据

(2)  修改过的数据

(3)  删除的数据

(4)  其它数据(原数据没有修改过,也未删除的)

2、保证最小数据量的同步

(1)  新增的数据需要同步添加

(2)  修改过的数据需要同步进行更新

(3)  删除的数据需要同步进行删除

(4)  其它数据(保持不变,不需要进行处理)

3、同步方案(数据获取的方式,JMS发送方)

    考虑到在信息系统中的特殊的操作,即删除只是置标志位,可以视为更新进行处理。故我们可隐藏了对于删除的处理。

在数据库中的设计中已经留存有dataversion字段,用来进行版本控制。

设计参照于以下方案:

(1)           默认未同步过的数据的dataversion为0。

(2)           首次同步时,取所有的dataversion为0的数据(其它条件自己制定)。

(3)           在JMS提交同步后,将被同步的表的数据的字段dataversion统一置为一个dataversion,记录至同步情况表中。(理论上,同步也应当记录日志)。

(4)           进行数据的更新操作时,同时增加一个拦截器,将dataversion置为上次同步的dataversion+1。(现有数据的删除为更新标志位,也遵守此规定)

(5)           新添加的数据,dataversion字段置为0。

(6)           非首次同步时,查询同步日志中记录的上次的同步时dataversion的值,同步 数据的dataversion!=上次同步的dataversion的数据字段。

4、同步方案(数据的保存方式,JMS接收方)

(1)           对于dataversion == 0 的数据,执行添加操作(insert)。

(2)           对于dataversion != 0 的数据,执行更新操作(update)。


 回到顶部