一种数据同步方法及系统技术方案

技术编号:16042671 阅读:64 留言:0更新日期:2017-08-20 01:04
本发明专利技术实施例公开了一种数据同步方法,所述方法基于包括属于同一子网的服务器以及与该服务器相连的第一终端和至少一个第二终端的数据同步系统;所述方法包括:服务器接收第一终端上报的更新数据并进行更新,生成第一快照版本号,将第一快照版本号和更新数据对应存储在缓存中,将第一快照版本号在所属的子网内进行广播;第二终端在接收到广播的第一快照版本号之后,获取存储的第二快照版本号,在第二快照版本号大于第一快照版本号时,生成数据更新请求并发送给服务器;服务器在缓存中查找与数据更新请求对应的目标更新数据并发送给第二终端,以使第二终端对本地存储的数据进行更新。采用本发明专利技术,可减少服务器与各个终端之间的数据不同步。

【技术实现步骤摘要】
一种数据同步方法及系统
本专利技术涉及计算机
,尤其涉及一种数据同步方法及系统。
技术介绍
随着互联网技术的不断发展,在安防、门禁、考勤产品也越来越多的应用到了互联网技术。在现有的门禁管理或考勤产品中,门禁终端或考勤机等终端设备上存储的相关数据与服务器上存储的数据应该是一致的,例如,与同一个服务器相连的多个考勤机上的员工数据应该是一致的。在服务器或者某一个终端设备上的数据出现更新时,其他终端上的数据也需要进行相应的更新。在相关的数据更新方案中,在服务器接收到相关的更新数据(可以是直接在服务器上更新的,也可以是某一个终端设备更新之后上报给服务器的)之后,服务器即通过与各个终端设备之间的通讯连接将更新数据发送给各个终端设备,以使各个终端设备根据接收到的更新数据对本地终端设备上的数据进行更新。但是,在服务器将更新数据推送给各个终端设备时,因为网络连接不稳定或者其他通讯连接的问题,可能会导致终端设备接收不到相应的更新数据或者接收到的更新数据出现部分数据丢失的现象或者因为发送的数据量大导致在推送的过程中出现数据丢失的现象;并且,在后续的再次发送更新数据时,服务器并不知道当前终端设备之前的数据更新是否更新完整,也不会将之前的更新数据再次发送;这就导致了各个终端设备以及服务器之间的数据出现不同步的现象。也就是说,在服务器与各个终端设备的数据更新方案中,因为在更新数据的过程中出现的数据丢失现象导致了服务器与各个终端设备存在数据不同步的问题。
技术实现思路
基于此,为解决传统技术中的因为在更新数据的过程中的数据丢失导致的服务器与各个终端设备之间存在的数据不同步的技术问题,特提出了一种数据同步方法。一种数据同步方法,基于数据同步系统,所述数据同步系统包括属于同一子网的服务器以及与该服务器相连的第一终端和至少一个第二终端;所述方法包括:所述第一终端接收输入的数据更新指令,获取所述数据更新指令中携带的更新数据并上报给所述服务器;所述服务器接收所述第一终端上报的更新数据,根据所述更新数据对所述服务器上存储的数据进行更新,根据所述更新数据生成第一快照版本号,将所述第一快照版本号和所述更新数据对应存储在缓存中;所述服务器将所述第一快照版本号在所述服务器所属的子网内进行广播;所述第二终端在接收到所述广播的第一快照版本号之后,获取在本地终端上存储的第二快照版本号,在所述第二快照版本号小于所述第一快照版本号时,生成数据更新请求并发送给所述服务器,所述数据更新请求包括所述述第二快照版本号和所述第一快照版本号;所述服务器在接收到数据更新请求之后,获取所述接收到的数据更新请求中携带的第一快照版本号和第二快照版本号,在所述缓存中查找与所述数据更新请求中携带的第一快照版本号和第二快照版本号对应的更新数据作为目标更新数据并发送给第二终端,以使所述第二终端在接收到目标更新数据后对本地存储的数据进行更新。可选的,在其中一个实施例中,所述服务器将所述第一快照版本号在所述服务器所属的子网内进行广播还包括:所述服务器确定与所述第一终端对应的通道组,所述第二终端与所述第一终端属于同一通道组;所述服务器将所述第一快照版本号在所述服务器所属的子网内与所述第一终端对应的通道组内进行广播,以使与所述第一终端对应的通道组内的所有终端监听到所述广播的第一快照版本号。可选的,在其中一个实施例中,所述第二终端获取在本地终端上存储的第二快照版本号之后还包括:计算所述第一快照版本号与所述第二快照版本号的差值,在所述差值大于预设的阈值时,发送第一全量更新请求给所述服务器,并清除在所述第二终端本地存储的数据;所述服务器在接收第一全量更新请求之后,将在所述服务器本地存储的数据发送给所述第二终端。可选的,在其中一个实施例中,所述第二终端在接收到所述广播的第一快照版本号之后还包括:若在所述第二终端上未存储有快照版本号或所述第二终端上存储的快照版本号为0,则清除在所述第二终端上本地存储的数据,并生成第二全量更新请求给所述服务器;所述服务器在接收第二全量更新请求之后,将在所述服务器本地存储的数据发送给所述第二终端。可选的,在其中一个实施例中,所述服务器在所述缓存中查找与所述数据更新请求中携带的第一快照版本号和第二快照版本号对应的更新数据作为目标更新数据还包括:所述服务器确定与所述数据更新请求中携带的第一快照版本号和第二快照版本号对应的快照区间,在所述缓存中查找与所述快照区间对应的更新数据;若查找到,则所述服务器将所述查找到的与所述快照区间对应的更新数据作为目标更新数据;若未查找到,则所述服务器生成全量更新指令给所述第二终端,所述第二终端在接收到全量更新指令后,删除在所述第二终端上存储的数据并生成第三全量更新请求并发送给所述服务器,以使所述服务器将在所述服务器上本地存储的数据发送给第二终端。可选的,在其中一个实施例中,所述服务器根据所述更新数据生成第一快照版本号,将所述第一快照版本号和所述更新数据对应存储在缓存中还包括:所述服务器根据所述更新数据生成与所述更新数据对应的数据更新报文;根据在所述缓存中存储的快照版本号中最大的快照版本号确定与所述更新数据对应的快照版本号作为第一快照版本号,所述第一快照版本号大于所述最大的快照版本号;建立所述数据更新报文与所述第一快照版本号之间的对应关系并进行缓存。可选的,在其中一个实施例中,所述数据同步系统还包括第三终端;所述方法还包括:所述服务器接收第三终端发送的设备登录请求,获取所述设备登录请求中携带的登录密码并对该登录密码进行密码校验,将所述密码校验的校验结果返回给所述第三终端;在所述密码校验未通过时,所述第三终端删除在所述第三终端本地存储的数据,生成设备注册请求并发送给所述服务器。可选的,在其中一个实施例中,所述服务器接收第三终端发送的设备登录请求之前还包括:所述第三终端检测与所述服务器之间的连接是否断开;若断开,则生成设备登录请求并发送给所述服务器。此外,为解决传统技术中的因为在更新数据的过程中的数据丢失导致的服务器与各个终端设备之间存在的数据不同步的技术问题,特提出了一种数据同步系统。一种数据同步系统,包括属于同一子网的服务器以及与该服务器相连的第一终端和至少一个第二终端;所述第一终端用于接收输入的数据更新指令,获取所述数据更新指令中携带的更新数据并上报给所述服务器;所述服务器用于接收所述第一终端上报的更新数据,根据所述更新数据对所述服务器上存储的数据进行更新,根据所述更新数据生成第一快照版本号,将所述第一快照版本号和所述更新数据对应存储在缓存中;所述服务器还用于将所述第一快照版本号在所述服务器所属的子网内进行广播;所述第二终端还用于在接收到所述广播的第一快照版本号之后,获取在本地终端上存储的第二快照版本号,在所述第二快照版本号小于所述第一快照版本号时,生成数据更新请求并发送给所述服务器,所述数据更新请求包括所述述第二快照版本号和所述第一快照版本号;所述服务器还用于在接收到数据更新请求之后,获取所述接收到的数据更新请求中携带的第一快照版本号和第二快照版本号,在所述缓存中查找与所述数据更新请求中携带的第一快照版本号和第二快照版本号对应的更新数据作为目标更新数据并发送给第二终端,以使所述第二终端在接收到目标更新数据后对本地存储的数据进行更新。可选本文档来自技高网...
一种数据同步方法及系统

【技术保护点】
一种数据同步方法,其特征在于,所述方法基于数据同步系统,所述数据同步系统包括属于同一子网的服务器以及与该服务器相连的第一终端和至少一个第二终端;所述方法包括:所述第一终端接收输入的数据更新指令,获取所述数据更新指令中携带的更新数据并上报给所述服务器;所述服务器接收所述第一终端上报的更新数据,根据所述更新数据对所述服务器上存储的数据进行更新,根据所述更新数据生成第一快照版本号,将所述第一快照版本号和所述更新数据对应存储在缓存中;所述服务器将所述第一快照版本号在所述服务器所属的子网内进行广播;所述第二终端在接收到所述广播的第一快照版本号之后,获取在本地终端上存储的第二快照版本号,在所述第二快照版本号小于所述第一快照版本号时,生成数据更新请求并发送给所述服务器,所述数据更新请求包括所述述第二快照版本号和所述第一快照版本号;所述服务器在接收到数据更新请求之后,获取所述接收到的数据更新请求中携带的第一快照版本号和第二快照版本号,在所述缓存中查找与所述数据更新请求中携带的第一快照版本号和第二快照版本号对应的更新数据作为目标更新数据并发送给第二终端,以使所述第二终端在接收到目标更新数据后对本地存储的数据进行更新。...

【技术特征摘要】
1.一种数据同步方法,其特征在于,所述方法基于数据同步系统,所述数据同步系统包括属于同一子网的服务器以及与该服务器相连的第一终端和至少一个第二终端;所述方法包括:所述第一终端接收输入的数据更新指令,获取所述数据更新指令中携带的更新数据并上报给所述服务器;所述服务器接收所述第一终端上报的更新数据,根据所述更新数据对所述服务器上存储的数据进行更新,根据所述更新数据生成第一快照版本号,将所述第一快照版本号和所述更新数据对应存储在缓存中;所述服务器将所述第一快照版本号在所述服务器所属的子网内进行广播;所述第二终端在接收到所述广播的第一快照版本号之后,获取在本地终端上存储的第二快照版本号,在所述第二快照版本号小于所述第一快照版本号时,生成数据更新请求并发送给所述服务器,所述数据更新请求包括所述述第二快照版本号和所述第一快照版本号;所述服务器在接收到数据更新请求之后,获取所述接收到的数据更新请求中携带的第一快照版本号和第二快照版本号,在所述缓存中查找与所述数据更新请求中携带的第一快照版本号和第二快照版本号对应的更新数据作为目标更新数据并发送给第二终端,以使所述第二终端在接收到目标更新数据后对本地存储的数据进行更新。2.根据权利要求1所述的数据同步方法,其特征在于,所述服务器将所述第一快照版本号在所述服务器所属的子网内进行广播还包括:所述服务器确定与所述第一终端对应的通道组,所述第二终端与所述第一终端属于同一通道组;所述服务器将所述第一快照版本号在所述服务器所属的子网内与所述第一终端对应的通道组内进行广播,以使与所述第一终端对应的通道组内的所有终端监听到所述广播的第一快照版本号。3.根据权利要求1所述的数据同步方法,其特征在于,所述第二终端获取在本地终端上存储的第二快照版本号之后还包括:计算所述第一快照版本号与所述第二快照版本号的差值,在所述差值大于预设的阈值时,发送第一全量更新请求给所述服务器,并清除在所述第二终端本地存储的数据;所述服务器在接收第一全量更新请求之后,将在所述服务器本地存储的数据发送给所述第二终端。4.根据权利要求3所述的数据同步方法,其特征在于,所述第二终端在接收到所述广播的第一快照版本号之后还包括:若在所述第二终端上未存储有快照版本号或所述第二终端上存储的快照版本号为0,则清除在所述第二终端上本地存储的数据,并生成第二全量更新请求给所述服务器;所述服务器在接收第二全量更新请求之后,将在所述服务器本地存储的数据发送给所述第二终端。5.根据权利要求1所述数据同步方法,其特征在于,所述服务器在所述缓存中查找与所述数据更新请求中携带的第一快照版本号和第二快照版本号对应的更新数据作为目标更新数据还包括:所述服务器确定与所述数据更新请求中携带的第一快照版本号和第二快照版本号对应的快照区间,在所述缓存中查找与所述快照区间对应的更新数据;若查找到,则所述服务器将所述查找到的与所述快照区间对应的更新数据作为目标更新数据;若未查找到,则所述服务器生成全量更新指令给所述第二终端,所述第二终端在接收到全量更新指令后,删除在所述第二终端上存储的数据并生成第三全量更新请求并发送给所述服务器,以使所述服务器将在所述服务器上本地存储的数据发送给第二终端。6.根据权利要求1所述的数据同步方法,其特征在于,所述服务器根据所述更新数据生成第一快照版本号,将所述第一快照版本号和所述更新数据对应存储在缓存中还包括:所述服务器根据所述更新数据生成与所述更新数据对应的数据更新报文;根据在所述缓存中存储的快照版本号中最大的快照版本号确定与所述更新数据对应的快照版本号作为第一快照版本号,所述第一快照版本号大于所述最大的快照版本号;建立所述数据更新报文与所述第一快照版本号之间的对应关系并进行缓存。7.根据权利要求1-6任一所述的数据同步方法,其特征在于,所述数据同步系统还包括第三终端;所述方法还包括:所述服务器接收第三终端发送的设备登录请求,获取所述设备登录请求中携带的登录密码并对该登录密码进行密码校验,将所述密码校验的校验结果返回给所述第三终端;在所述密码校验未通过时,所述第三终端删除在所述第三终端本地存储的数据,生成设备注册请求并发...

【专利技术属性】
技术研发人员:吕榕林欧骏骁梁贤森
申请(专利权)人:厦门中控生物识别信息技术有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1