公开/公告号CN105933352A
专利类型发明专利
公开/公告日2016-09-07
原文格式PDF
申请/专利权人 广州华多网络科技有限公司;
申请/专利号CN201610521896.7
申请日2016-07-05
分类号H04L29/06(20060101);H04L29/08(20060101);
代理机构11227 北京集佳知识产权代理有限公司;
代理人杨炳财;屈慧丽
地址 511449 广东省广州市番禺区南村镇万博商务区万达广场B1座
入库时间 2023-06-19 00:26:11
法律状态公告日
法律状态信息
法律状态
2019-05-31
授权
授权
2016-10-05
实质审查的生效 IPC(主分类):H04L29/06 申请日:20160705
实质审查的生效
2016-09-07
公开
公开
技术领域
本发明涉及数据同步技术领域,尤其涉及一种基于客户端的服务器之间数据同步方法、客户端及系统。
背景技术
数据同步是指多个终端之间基于服务器进行数据同步与信息共享,使多个终端的数据保持完整性和统一性。随着通信技术的快速发展,对终端中的相关信息的管理显得尤为重要,尤其对于互联网交互应用产品如何安全有效的将更新数据同步到服务器的功能的服务器中的时候已经成为了本领域技术人员备受关注的技术主题。
目前的客户端在基于互联网的大环境下进行如游戏或交互性应用产品操作时,在应用中存在多种服务功能或类型的数据不断更新操作,通常的做法当客户端的服务功能或类型的数据更新时,需要通过服务器进行处理再转发,服务器的转发有两种,一种为将数据更新信息排在消息队列中基于先入先出进行数据传输同步。
然而上述的将数据更新信息排在消息队列中基于先入先出进行数据传输同步,由于同步具有一定延时,导致了不同服务器之间的通过不状态出现不一致,用户体验差的技术问题。
发明内容
本发明实施例提供的一种基于客户端的服务器之间数据同步方法、客户端及系统,解决了目前服务器将数据更新信息排在消息队列中基于先入先出进行数据传输同步,由于同步具有一定延时,导致的不同服务器之间的通过不状态出现不一致,用户体验差的技术问题。
本发明实施例提供的一种基于客户端的服务器之间数据同步方法,包括:
获取到第一服务器根据应用服务数据更新请求返回的数据更新响应包;
将所述数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理;
获取到所述第二服务器同步处理数据更新后返回的数据同步响应包。
优选地,获取到第一服务器根据应用服务数据更新请求返回的数据更新 响应包之前还包括:
获取到用户触发的应用服务数据更新指令;
将所述应用服务数据更新指令对应的应用服务数据更新请求发送至所述第一服务器进行应用服务数据更新处理。
优选地,将所述应用服务数据更新指令对应的应用服务数据更新请求发送至所述第一服务器进行应用服务数据更新处理具体包括:
将所述应用服务数据更新指令对应的应用服务数据更新请求进行安全消息格式处理;
将进行所述安全消息格式处理后的所述应用服务数据更新请求通过protobuf协议发送至所述第一服务器进行应用服务数据更新处理。
优选地,获取到所述第二服务器同步处理数据更新后返回的数据同步响应包具体包括:
当预置时间段未获取到所述第二服务器同步处理数据更新后返回的数据同步响应包时,则再次将所述数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理,并将重试间隔时间设置为前一次重试间隔时间的双倍。
优选地,所述安全消息格式包括待传输消息数据及对应的数据签名。
本发明实施例提供的一种用于服务器之间数据同步的客户端,包括:
第一获取单元,用于获取到第一服务器根据应用服务数据更新请求返回的数据更新响应包;
转发单元,用于将所述数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理;
第二获取单元,用于获取到所述第二服务器同步处理数据更新后返回的数据同步响应包。
优选地,客户端还包括:
第三获取单元,用于获取到用户触发的应用服务数据更新指令;
发送单元,用于将所述应用服务数据更新指令对应的应用服务数据更新请求发送至所述第一服务器进行应用服务数据更新处理。
优选地,发送单元具体包括:
消息格式处理子单元,用于将所述应用服务数据更新指令对应的应用服务数据更新请求进行安全消息格式处理,所述安全消息格式包括待传输消息数据及对应的数据签名;
发送子单元,用于将进行所述安全消息格式处理后的所述应用服务数据更新请求通过protobuf协议发送至所述第一服务器进行应用服务数据更新处理。
优选地,第二获取单元,具体用于当预置时间段未获取到所述第二服务器同步处理数据更新后返回的数据同步响应包时,则再次将所述数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理,并将重试间隔时间设置为前一次重试间隔时间的双倍。
本发明实施例提供的一种基于客户端的服务器之间数据同步系统,包括:
若干个服务器,以及本实施例中提及的任意一种所述的用于服务器之间数据同步的客户端;
若干个所述服务器与用于服务器之间数据同步的客户端建立有通信连接关系。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例提供的一种基于客户端的服务器之间数据同步方法、客户端及系统,其中,基于客户端的服务器之间数据同步方法包括:获取到第一服务器根据应用服务数据更新请求返回的数据更新响应包;将数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理;获取到第二服务器同步处理数据更新后返回的数据同步响应包。本实施例中,通过客户端获取到第一服务器根据应用服务数据更新请求返回的数据更新响应包,再将数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理,最后获取到第二服务器同步处理数据更新后返回的数据同步响应包,实现了多个服务器之间的数据同步,解决了目前服务器将数据更新信息排在消息队列中基于先入先出进行数据传输同步,由于同步具有一定延时,导致的不同服务器之间的通过不状态出现不一致,用户体验差的技术问题。
进一步地,当预置时间段未获取到第二服务器同步处理数据更新后返回的数据同步响应包时,则再次将数据更新响应包转发至待同步数据的第二服 务器进行数据更新同步处理,并将重试间隔时间设置为前一次重试间隔时间的双倍,大大地降低了服务的负载,有效地避免了服务器防止服务器由于过载无法工作的技术问题。
进一步地,将应用服务数据更新指令对应的应用服务数据更新请求进行安全消息格式处理的技术方案,防止了数据在传输过程中被恶意篡改。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种基于客户端的服务器之间数据同步方法的一个实施例的流程示意图;
图2为本发明实施例提供的一种基于客户端的服务器之间数据同步方法的另一个实施例的流程示意图;
图3为本发明实施例提供的一种用于服务器之间数据同步的客户端的一个实施例的结构示意图;
图4为本发明实施例提供的一种用于服务器之间数据同步的客户端的另一个实施例的结构示意图;
图5为本发明实施例提供的一种基于客户端的服务器之间数据同步系统的一个实施例的结构示意图;
图6为图2应用例示意图。
具体实施方式
本发明实施例提供的一种基于客户端的服务器之间数据同步方法、客户端及系统,解决了目前服务器将数据更新信息排在消息队列中基于先入先出进行数据传输同步,由于同步具有一定延时,导致的不同服务器之间的通过不状态出现不一致,用户体验差的技术问题。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部 的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例提供的一种基于客户端的服务器之间数据同步方法的一个实施例包括:
101、获取到第一服务器根据应用服务数据更新请求返回的数据更新响应包;
本实施例中,当多个协同服务器之间需要进行数据同步的时候,首先需要获取到第一服务器根据应用服务数据更新请求返回的数据更新响应包。
102、将数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理;
当获取到第一服务器根据应用服务数据更新请求返回的数据更新响应包之后,需要将数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理。
103、获取到第二服务器同步处理数据更新后返回的数据同步响应包。
当将数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理之后,需要获取到第二服务器同步处理数据更新后返回的数据同步响应包。
本实施例中,通过客户端获取到第一服务器根据应用服务数据更新请求返回的数据更新响应包,再将数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理,最后获取到第二服务器同步处理数据更新后返回的数据同步响应包,实现了多个服务器之间的数据同步,解决了目前服务器将数据更新信息排在消息队列中基于先入先出进行数据传输同步,由于同步具有一定延时,导致的不同服务器之间的通过不状态出现不一致,用户体验差的技术问题。
上面是对基于客户端的服务器之间数据同步方法进行的描述,下面将对具体过程进行详细的描述,请参阅图2,本发明实施例提供的一种基于客户端的服务器之间数据同步方法的另一个实施例包括:
201、获取到用户触发的应用服务数据更新指令;
本实施例中,当多个协同服务器之间需要进行数据同步的时候,首先需 要获取到用户触发的应用服务数据更新指令,也就是用户在客户端对协同服务器中的一个服务器对应的功能或业务进行了更新操作,便直接触发了应用服务数据更新指令。
202、将应用服务数据更新指令对应的应用服务数据更新请求发送至第一服务器进行应用服务数据更新处理;
当获取到用户触发的应用服务数据更新指令之后,需要将应用服务数据更新指令对应的应用服务数据更新请求发送至第一服务器进行应用服务数据更新处理。
前述的将应用服务数据更新指令对应的应用服务数据更新请求发送至第一服务器进行应用服务数据更新处理可以进一步如下步骤:
a)将应用服务数据更新指令对应的应用服务数据更新请求进行安全消息格式处理;
b)将进行安全消息格式处理后的应用服务数据更新请求通过protobuf协议发送至第一服务器进行应用服务数据更新处理;
服务器之间通过客户端透传的消息格式,采用protobuf协议格式,如下所示:
其中value是需要传输的消息数据,类型是字符串类型,赋予数据类型丰富的protobuf数据,从而达到传输任意类型的消息。signature是对value的签名,采用sha1签名算法,以防止在传输过程中被恶意篡改。
203、获取到第一服务器根据应用服务数据更新请求返回的数据更新响应包;
当将应用服务数据更新指令对应的应用服务数据更新请求发送至第一服务器进行应用服务数据更新处理之后,需要获取到第一服务器根据应用服务数据更新请求返回的数据更新响应包。
204、将数据更新响应包转发至待同步数据的第二服务器进行数据更新同 步处理;
当获取到第一服务器根据应用服务数据更新请求返回的数据更新响应包之后,需要将数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理。
205、判断预置时间段是否获取到第二服务器同步处理数据更新后返回的数据同步响应包,若否,则执行步骤206;
当将数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理之后,需要判断预置时间段是否获取到第二服务器同步处理数据更新后返回的数据同步响应包,若否,则执行步骤206。
206、再次将数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理,并将重试间隔时间设置为前一次重试间隔时间的双倍。
当预置时间段未获取到第二服务器同步处理数据更新后返回的数据同步响应包时,则再次将数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理,并将重试间隔时间设置为前一次重试间隔时间的双倍。
下面以一具体应用场景进行详细的描述,图6所示,应用例包括:
首先,目前有一种应用产品是基于一个平台,多个用户通过互联网进入该平台进行角色、游戏等功能操作,例如YY语音的微房产品等,其后台服务器按功能主要划分为三类服务,分别为角色服务、房间服务和游戏道具服务。角色服务和游戏道具服务需要同步消息或事件给房间服务。
1)微房客户端请求角色服务更新数据(如角色或昵称);
2)角色服务收到请求后,更新数据并回响应包给微房客户端,响应包除了响应结果外,还带有需要同步给房间服务的数据和签名,数据格式如上述协议所表示;
3)微房客户端收到响应包后,处理响应结果;
4)微房客户端将响应包的同步数据发送给房间服务,微房客户端不需要关心数据内容;
5)房间服务收到同步数据后,处理并回同步响应包给微房客户端;
6)微房客户端如果在有限时间内未收到同步响应包,将重试间隔时间变为双倍,回到4)步骤,否则进行7);
7)结束。
利用微房客户端作为各服务的协调者角色和为单个用户自己服务的特点,简单轻松地实现了服务器之间安全可靠地同步数据,从而达到状态的一致性,又解耦了各服务。由于微房客户端是请求数据更新的源头,故该方案将微房客户端作为各服务的协调者,在请求更新角色服务或游戏道具服务的数据时,同时也保证该更新同步到房间服务。从而保证了服务器之间安全可靠地同步数据,又解耦了各服务。
本实施例中,通过客户端获取到第一服务器根据应用服务数据更新请求返回的数据更新响应包,再将数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理,最后获取到第二服务器同步处理数据更新后返回的数据同步响应包,实现了多个服务器之间的数据同步,解决了目前服务器将数据更新信息排在消息队列中基于先入先出进行数据传输同步,由于同步具有一定延时,导致的不同服务器之间的通过不状态出现不一致,用户体验差的技术问题。
进一步地,当预置时间段未获取到第二服务器同步处理数据更新后返回的数据同步响应包时,则再次将数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理,并将重试间隔时间设置为前一次重试间隔时间的双倍,大大地降低了服务的负载,有效地避免了服务器防止服务器由于过载无法工作的技术问题。
进一步地,将应用服务数据更新指令对应的应用服务数据更新请求进行安全消息格式处理的技术方案,防止了数据在传输过程中被恶意篡改。
请参阅图3,本发明实施例中提供的一种用于服务器之间数据同步的客户端的一个实施例包括:
第一获取单元301,用于获取到第一服务器根据应用服务数据更新请求返回的数据更新响应包;
转发单元302,用于将数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理;
第二获取单元303,用于获取到第二服务器同步处理数据更新后返回的数据同步响应包。
本实施例中,通过客户端的第一获取单元301获取到第一服务器根据应用服务数据更新请求返回的数据更新响应包,转发单元302再将数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理,最后第二获取单元303获取到第二服务器同步处理数据更新后返回的数据同步响应包,实现了多个服务器之间的数据同步,解决了目前服务器将数据更新信息排在消息队列中基于先入先出进行数据传输同步,由于同步具有一定延时,导致的不同服务器之间的通过不状态出现不一致,用户体验差的技术问题。
上面是对用于服务器之间数据同步的客户端的各单元,下面将对子单元进行详细的描述,请参阅图4,本发明实施例中提供的一种用于服务器之间数据同步的客户端的另一个实施例包括:
第三获取单元401,用于获取到用户触发的应用服务数据更新指令;
发送单元402,用于将应用服务数据更新指令对应的应用服务数据更新请求发送至第一服务器进行应用服务数据更新处理。
发送单元402具体包括:
消息格式处理子单元4021,用于将应用服务数据更新指令对应的应用服务数据更新请求进行安全消息格式处理,安全消息格式包括待传输消息数据及对应的数据签名;
发送子单元4022,用于将进行安全消息格式处理后的应用服务数据更新请求通过protobuf协议发送至第一服务器进行应用服务数据更新处理。
第一获取单元403,用于获取到第一服务器根据应用服务数据更新请求返回的数据更新响应包;
转发单元404,用于将数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理;
第二获取单元405,用于获取到第二服务器同步处理数据更新后返回的数据同步响应包,第二获取单元405,具体用于当预置时间段未获取到第二服务器同步处理数据更新后返回的数据同步响应包时,则再次将数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理,并将重试间隔时间设置为前一次重试间隔时间的双倍。
本实施例中,通过客户端的第一获取单元403获取到第一服务器根据应 用服务数据更新请求返回的数据更新响应包,转发单元404再将数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理,最后第二获取单元405获取到第二服务器同步处理数据更新后返回的数据同步响应包,实现了多个服务器之间的数据同步,解决了目前服务器将数据更新信息排在消息队列中基于先入先出进行数据传输同步,由于同步具有一定延时,导致的不同服务器之间的通过不状态出现不一致,用户体验差的技术问题。
进一步地,第二获取单元405当预置时间段未获取到第二服务器同步处理数据更新后返回的数据同步响应包时,则再次将数据更新响应包转发至待同步数据的第二服务器进行数据更新同步处理,并将重试间隔时间设置为前一次重试间隔时间的双倍,大大地降低了服务的负载,有效地避免了服务器防止服务器由于过载无法工作的技术问题。
进一步地,将应用服务数据更新指令对应的应用服务数据更新请求进行安全消息格式处理的技术方案,防止了数据在传输过程中被恶意篡改。
请参阅图5,本发明实施例中提供的一种基于客户端的服务器之间数据同步系统的一个实施例包括:
若干个服务器51,以及图3和图4实施例的用于服务器之间数据同步的客户端52;
若干个服务器51与用于服务器之间数据同步的客户端52建立有通信连接关系。
需要说明的是,前述的服务器51可以是图1、图2实施例中的第一服务器、第二服务器的统称,也就是服务器51之间通过用于服务器之间数据同步的客户端52进行数据同步。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个 系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
机译: 基于客户端的显示状况的从服务器到客户端的多媒体数据传输控制方法,基于客户端的显示状况的从客户端到多媒体数据自适应解码的方法和模块,基于服务器的多媒体数据从客户端到客户端的传输到客户端的控制方法和客户端服务器系统
机译: 同步中间件系统,客户端数据库和能够同步客户端数据库和服务器数据库之间的数据以最小化无线网络容量的数据库同步方法
机译: 管理数据收集系统,用于在客户端和服务器上收集有关在实际使用客户端和服务器网络期间服务器,客户端和客户端用户之间的交互作用的数据