一种海量终端数据同步方法及系统与流程

文档序号:32133331发布日期:2022-11-09 11:13阅读:207来源:国知局
一种海量终端数据同步方法及系统与流程

1.本发明涉及海量数据技术领域,尤其涉及一种海量终端数据同步方法及系统。


背景技术:

2.随着一些企业的快速发展,客户群体的不断增,使得使用企业客户终端的数量大增,这就会产业海量的终端数据,并频繁的与服务器进行数据交互,给服务器造成的很大的压力。
3.为了应对此类情况,server端进行集群化改造,但是客户现场环境复杂、苛刻,在有限的硬件资源以及网络的带宽下,server集群化已不能完全解决现场问题。尤其是个别客户现场对网络带宽进行限制,这对于server端和client端的数据交互造成了很大的影响。
4.当前server与client采用定时+散列的方式进行数据同步,即管理端配置最大同步时间,例如1天,则终端在1天内随机某一个时间点去管理端进行数据同步。
5.采用定时+散列的方式,数据同步实时性不够。现有的方式只是在一定程度内缓解了server端的压力,但是整体网络流量是不变的。


技术实现要素:

6.为了克服上述现有技术中的不足,本发明提供一种海量终端数据同步方法,解决大规模去中心化 p2p 网络中的数据一致性问题,实现了海量数据的同步。
7.海量终端数据同步方法包括:步骤一、server端响应于用户操作系统进行数据变更;步骤二、server端进行数据变更,通过种子选择器选择种子节点进行数据下发;步骤三、种子节点收到server端发送的消息后,变更本地数据;步骤四、种子节点定期广播数据,将本地的数据同步给终端下一级的相关主机。
8.进一步需要说明的是,方法还包括:终端上线,发送报文给server端;server端响应于终端发送的报文,获取终端下所有的主机信息和数量;根据终端下主机数量计算该终端需要的seed 数量。
9.进一步需要说明的是,server端进行seed校验;如果当前终端下激活的seed数量已经等于计算的seed数量,则采用轮询方式,将主机平均分配到n个seed节点中。
10.进一步需要说明的是,响应于server端对终端进行的seed校验;server端对每个终端的性能信息进行获取,调取性能信息与预设条件相匹配的终端作为seed节点。
11.进一步需要说明的是,性能信息为终端的可上线时长、cpu资源可利用率、运算速度以及主频数据。
12.进一步需要说明的是,server端进行seed校验;
如果当前终端下激活的seed数量不等于计算的seed数量,则进行seed节点竞选;竞选成功,则同步所有的业务数据以及终端下所有的主机数据。
13.进一步需要说明的是,如竞选失败,则采用轮询方式,将主机平均分配到n个seed节点中。
14.进一步需要说明的是,响应于将数据返回终端;seed节点接收到数据后,开启定时任务,定期广播数据到所属的子节点。
15.进一步需要说明的是,方法还包括:终端下一级的主机a发送握手请求到主机b;如主机b无响应,则继续下个主机c;如主机b响应于主机a的握手请求,主机b根据报文中的数据标识,将本地数据id以及版本号发送给主机a;主机a接收到主机b的数据后,对比本地数据,如版本号不一致,则将版本号发送给主机b。
16.本发明还提供一种海量终端数据同步系统,系统包括:server端、种子选择器以及终端;终端级联有多个主机;server端响应于用户操作系统进行数据变更;server端进行数据变更,通过种子选择器选择种子节点进行数据下发;种子节点收到server端发送的消息后,变更本地数据;种子节点定期广播数据,将本地的数据同步给终端下一级的相关主机。
17.从以上技术方案可以看出,本发明具有以下优点:本发明提供的海量终端数据同步系统可以在有限的硬件资源以及网络的带宽下,完全解决现场数据更新的问题。实现server端和终端的数据交互,保证数据更新及时处理。避免采用定时+散列的方式,数据同步实时性不够的问题。本发明提供的海量终端数据同步系统在一定程度内缓解了server端的压力,保证系统网络畅通。
18.本发明涉及的海量终端数据同步方法利用gossip 协议,解决大规模去中心化 p2p 网络中的数据一致性问题,本发明显著特点在于不要求节点间均相互通信,只要一个节点能与部分节点通信,就可以把数据变更消息广播至整个联通网络中。
19.种子节点的选择方式,即根据组织,终端数量,终端机器资源利用情况合理的选举出seed节点。在不影响用户使用的情况下,保证seed节点与终端数据同步的实时性与准确性。
附图说明
20.为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1为海量终端数据同步方法流程图;图2为海量终端数据同步方法实施例示意图;图3为海量终端数据同步系统示意图。
具体实施方式
22.本发明提供的海量终端数据同步系统架构可以包括终端,网络和server端。网络是用以在终端和服务器之间提供通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
23.应该理解,图1中的终端、网络和server端的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端、网络和server端。比如server端可以是多个服务器组成的服务器集群等。
24.用户可以使用用户操作系统通过网络与server端交互,以接收或发送消息等。终端可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、便携式计算机和台式计算机、数字电影放映机等等。
25.server端可以是提供各种服务的服务器。例如用户利用用户操作系统向server端发送数据信息。
26.服务器可以基于gossip 协议把数据变更消息广播至整个联通网络中。其中, 本发明涉及的海量终端数据同步方法利用gossip 协议,解决大规模去中心化 p2p 网络中的数据一致性问题,本发明显著特点在于不要求节点间均相互通信,只要一个节点能与部分节点通信,就可以把数据变更消息广播至整个联通网络中。解决采用定时+散列的方式,数据同步实时性不够的问题。
27.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
28.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
29.本发明提供海量终端数据同步方法,如图1所示,方法包括:s101、server端响应于用户操作系统进行数据变更;用户操作系统可以对系统数据进行增删改等操作。server端获取数据变更信息,可以将数据进行保存。保存变更前后的数据。
30.s102、server端进行数据变更,通过种子选择器选择种子节点进行数据下发;s103、种子节点收到server端发送的消息后,变更本地数据;s104、种子节点定期广播数据,将本地的数据同步给终端下一级的相关主机。
31.示例性的讲,种子选择器可以向种子节点周期性的散播消息。被感染节点随机选择n个邻接节点散播消息,比如fan-out(扇出)设置为6,每次最多往6个节点散播。节点只接收消息不反馈结果。每次散播消息都选择尚未发送过的节点进行散播。收到消息的节点不再往发送节点散播:主机a向主机 b散播,那么主机b进行散播的时候,不再发给主机a。这样避免了采用定时+散列的方式,导致的数据同步实时性不够。本发明可以缓解server端的压力,提升系统数据处理效率。
32.进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例中的具体实施过程,提供了另一种海量终端数据同步方法,方法还包括:s201、终端上线,发
送报文给server端;本发明实施例中,终端上线将上线报文发送给server端,使server端获悉终端上线状态。
33.s202、server端响应于终端发送的报文,获取终端下所有的主机信息和数量;在本发明的一些实施方式中,终端与其下所有的主机为父子关系,其中终端与多个主机具有互通的通信通路。多个主机可以相互通信,可以为环网,或者树状网等等。
34.s203、根据终端下主机数量计算该终端需要的seed 数量。
35.例如:如果规定100主机1个seed节点,如果一个终端下有500主机,则需要5个seed节点。
36.在本发明的一些实施方式中,server端进行seed校验;如果当前终端下激活的seed数量已经等于计算的seed数量,则采用轮询方式,将主机平均分配到n个seed节点中。
37.分配之后,seed节点响应于将数据返回终端;seed节点接收到数据后,开启定时任务,定期广播数据到所属的子节点。
38.作为本发明的另一种实施方式,响应于server端对终端进行的seed校验;server端对每个终端的性能信息进行获取,调取性能信息与预设条件相匹配的终端作为seed节点。
39.性能信息为终端的可上线时长、cpu资源可利用率、运算速度以及主频数据;seed节点响应于将数据返回终端;seed节点接收到数据后,开启定时任务,定期广播数据到所属的子节点。
40.这样,种子节点的选择方式,即根据组织,终端数量,终端机器资源利用情况合理的选举出seed节点。在不影响用户使用的情况下,保证seed节点与终端数据同步的实时性与准确性。
41.相关技术中,例如可以采用机器学习方法、深度学习方法等实现海量终端数据同步方法,不同方法适用的范围不同。
42.在本公开的一实施方式中,server端进行seed校验;如果当前终端下激活的seed数量不等于计算的seed数量,则进行seed节点竞选;竞选成功,则同步所有的业务数据以及终端下所有的主机数据。
43.如竞选失败,则采用轮询方式,将主机平均分配到n个seed节点中。
44.这样,以现场有30w主机,6w个seed节点,server端接收到数据变更后只需要给6w seed节点发送数据,对比之前30w的主机,server端并发承载能力提升了5倍。
45.作为本发明的实施例中,如图2所示,终端下一级的主机a发送握手请求到主机b,如主机b无响应,则继续下个主机c;报文实例:{
ꢀꢀꢀꢀꢀꢀꢀ
"source": "172.168.0.1",
ꢀꢀꢀꢀꢀꢀꢀ
"datatype": "org"}如主机b响应于主机a的握手请求,主机b根据报文中的数据标识,将本地数据id以
及版本号发送给主机a;报文实例:
ꢀꢀꢀ
{
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
"source": "172.168.0.2",
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
"datatype": "org",
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
"requestcontent": [
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
"id": "1",
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
"version":"1"
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
},
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
"id": "2",
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
"version":"3"
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
}
ꢀꢀꢀ
]}主机a接收到主机b的数据后,对比本地数据,如版本号不一致,则将版本号发送给主机b。
[0046]
报文实例:{
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
"source": "172.168.0.1",
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
"datatype": "org",
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
"requestcontent": [
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
{
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
"id": "1",
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
"name":"部门1",
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
"version": "2"
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
]}本实施例解决大规模去中心化 p2p 网络中的数据一致性问题,本发明显著特点在于不要求节点间均相互通信,只要一个节点能与部分节点通信,就可以把数据变更消息广播至整个联通网络中。解决采用定时+散列的方式,数据同步实时性不够的问题。
[0047]
基于上述海量终端数据同步方法,本发明还提供一种海量终端数据同步系统,如图3所示,系统包括:server端、种子选择器以及终端;终端级联有多个主机;server端响应于用户操作系统进行数据变更;server端进行数据变更,通过种子选择器选择种子节点进行数据下发;种子节点收到server端发送的消息后,变更本地数据;
种子节点定期广播数据,将本地的数据同步给终端下一级的相关主机。
[0048]
在本发明系统的实施方式中,终端上线,发送报文给server端;server端获取终端的以及所有的主机信息和数量;server端根据主机数量计算该部门需要的seed 数量,例如:如果规定100主机1个seed节点,如果一个部门下有500主机,则需要5个seed节点。
[0049]
server端进行seed校验,如果当前该部门下激活的seed数量已经等于计算的seed数量,为了防止单个seed节点压力过大,则采用轮询方式,将主机平均分配到n个seed节点中。
[0050]
在本发明的另一种实现方式中,考虑收集终端硬件配置,响应于server端对终端进行的seed校验;server端对每个终端的性能信息进行获取,调取性能信息与预设条件相匹配的终端作为seed节点。性能信息为终端的可上线时长、cpu资源可利用率、运算速度以及主频数据;在本实施例中,server端进行seed校验;如果当前终端下激活的seed数量不等于计算的seed数量,则进行seed节点竞选;竞选成功,则同步所有的业务数据以及终端下所有的主机数据。如竞选失败,则采用轮询方式,将主机平均分配到n个seed节点中。
[0051]
seed节点响应于将数据返回终端;seed节点接收到数据后,开启定时任务,定期广播数据到所属的子节点。
[0052]
本发明提供的海量终端数据同步系统可以在有限的硬件资源以及网络的带宽下,完全解决现场数据更新的问题。实现server端和终端的数据交互,保证数据更新及时处理。避免采用定时+散列的方式,数据同步实时性不够的问题。本发明提供的海量终端数据同步系统在一定程度内缓解了server端的压力,保证系统网络畅通。
[0053]
本发明涉及的海量终端数据同步方法利用gossip 协议,解决大规模去中心化 p2p 网络中的数据一致性问题,本发明显著特点在于不要求节点间均相互通信,只要一个节点能与部分节点通信,就可以把数据变更消息广播至整个联通网络中。
[0054]
种子节点的选择方式,即根据组织,终端数量,终端机器资源利用情况合理的选举出seed节点。在不影响用户使用的情况下,保证seed节点与终端数据同步的实时性与准确性。
[0055]
本发明提供海量终端数据同步系统的附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0056]
本发明提供海量终端数据同步系统及方法是结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0057]
本发明提供海量终端数据同步方法可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语
言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0058]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1