一、场景设定:

1.手机客户端与远程服务器数据同步;

2.一个服务器多个客户端;

3.手机不联网可以修改新增本地数据,联网后把数据变动同步到服务器;

4.联网后可以把服务器的数据变动同步到客户端。

二、分析

1.因为是手机流量,网络传输量应该尽可能的小;

2.数据操作不外乎就是增、删、改、查,其中增删改是需要同步的,查不需要同步,但应避免数据同步对查的影响;

3.数据要同步,那么每条数据项必须得有一个全局唯一的标识。

4.全局唯一标识,可以是由一个中心节点统一分配,也可以是由各个节点自由产生(节点标识+节点内唯一标识)。

三、方案描述

1.一条通讯录一个全局唯一标识(通讯录tid),由手机客户端产生。

2.每个客户端第一次登陆时,由服务器分配一个唯一的客户端唯一标识。

3.客户端增删改通讯录时,把对应的通讯录id记录到一个同步索引表(自增主键cid,通讯录tid),同步时按cid从小到大处理,读取对应的通讯录记录上传到服务器,若tid不存在则为删除操作,服务器端接收数据后,若已经存在tid则为修改,若无则为新增。每次同步后,客户端记录下最后处理的cid,下次同步将从这个cid的下一个开始。

4.服务器通讯录有变动时(增删改),同样也把tid记录到一个同步索引表(自增主键sid,客户端id,用户uid,通讯录tid),客户端请求服务器时,带上客户端id和用户id,以及上次同步的sid,服务器返回大于此sid,非从此客户端产生,属于这个用户的数据变动。同样每次同步后客户端保存最后的sid,用于下次同步

手机通讯录 客户端/服务器数据同步方案设计相关推荐

  1. 手机无线服务器通讯录失败,手机通讯录云服务器

    手机通讯录云服务器 内容精选 换一换 为了确保您的个人数据(例如用户名.密码.手机号码等)不被未经过认证.授权的实体或者个人获取,HSS通过加密存储个人数据.控制个人数据访问权限等方法防止个人数据泄露 ...

  2. 帝国cms手机和pc站数据同步建站教程

    帝国cms手机和pc站数据同步建站教程 (2018-03-20 17:18:08) 转载▼ 标签: 帝国cms同步网站 帝国cms手机端同步   http://tangjiusheng.com/Emp ...

  3. 数仓建模—数据同步方案设计

    数据同步方案设计 通过前面的学习数据仓库的特性之一是集成,关于一点你可以参考我们前面的文章 数仓建模-数仓初识 数仓建模-数据集成 数据集成狭义上来说就是把未经过加工处理的.不同来源的.不同形式的的原 ...

  4. 游戏服务器 数据同步方案

    游戏数据同步方案 首先我们介绍实时对战手游中最难解决的技术问题--弱网络下的数据同步问题. 通过对玩家的游戏数据进行观察,发现玩家的游戏环境存在很大差异,不同玩家会使用不同的2G/3G/4G/Wifi ...

  5. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 能支撑10万以上客户端的数据同步下载问题...

    庞大的业务系统,特别是需要有离线作业操作支持的核心业务系统,需要有强大的基础数据同步功能,基础数据有在增加.有在变动.有在失效,同时有大量的客户端全天侯的在连接服务器.不间断的在处理核心数据. 经过2 ...

  6. 向服务器获取同步信息失败,主域服务器和辅助域服务器数据同步失败

    单位上的域控平台正常运行一年后,某天发现主域和辅助域服务器数据不能同步,经检查网络连接正常,135.139.445等共享端口正常开启,用dcdiag命令检测主域服务器后,报告如下: C:\Users\ ...

  7. Linux 服务器数据同步

    一.简介 1 认识 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的"Rsync算法"来 ...

  8. 【转】mysql多台服务器数据同步

     /** *@ Date         2010.09.13 *@ Author       狼 *@ Email        1317983530@qq.com *@ QQ           ...

  9. 服务器多个网站开启quarz,GitHub - WuLex/QuartzSynchroData: 多个不同站点服务器数据同步到总服务器(数据中心)...

    QuartzSynchroData 多个不同站点服务器sqlserver数据库 同步到总服务器上的数据库 (数据中心) 目前支持40多个数据库(在数据库配置表DBconfig配置了)的同步,每天每个服 ...

最新文章

  1. 纸牌游戏10点半c语言,python10点半纸牌游戏_【Python】Python编的纸牌游戏
  2. Use DynamicXElement to create xml
  3. java线程池(ThreadPool)
  4. 关于FactoryBean 和BeanFactory
  5. Node.js模块之Buffer
  6. Python识别图片的清晰度
  7. r语言 fread函数参数_R语言 第4章 初级绘图(6)
  8. node.js之require
  9. Jquery改变窗体大小
  10. 在CentOS 7上利用systemctl添加自定义系统服务 /usr/lib/systemd/
  11. 当宝石遇到宝藏 “不思进取”的PopCap
  12. 机器 学习中的方差和偏差
  13. 大快搜索获评“2018中国大数据基础软件领域领军企业”
  14. lintcode :sort letters by case字符大小写排序
  15. 参与全国软考调查问卷,赢精彩大奖
  16. 我是如何从大三开始实现财务自由的
  17. ant压缩html,ant+yuicompressor压缩js/css
  18. redis问题及答案
  19. mma7660.c的改进
  20. C语言程序中数字字符是什么,C语言中如何识别字符与数字

热门文章

  1. 多线程就一定快吗?天真!
  2. 国信证券金色阳光版修改增强,还有闪电下单爽啊
  3. SAP 移动价(V)与标准价(S)
  4. 头像采集,学生照片信息采集器
  5. 有哪位仁兄可以告诉我,下载软件包的时候出现这种情况是怎么一回事呢?kali虚拟机,希望看见的前辈不吝赐教
  6. 【MySQL】—入门介绍
  7. 用 Java 实现一个远程控制客户端
  8. 配置Java远程监控授权(Java Mission Control)
  9. 安卓利用fat-aar打包含有第三方aar的model
  10. Git命令全解析-前端备忘录