一种基于reactor模式的网络数据同步方法及系统技术方案

技术编号:11381371 阅读:37 留言:0更新日期:2015-05-01 03:48
本发明专利技术提供一种基于reactor模式的网络数据同步方法,基于一子网内多个主机及所述子网外的多个主机组成的网络,所述主机均包括网络同步模块,包括以下步骤:通过一主机内的网络同步模块将本地产生的同步数据发往所述主机所在子网内的其他主机;通过一主机内的网络同步模块从网络UDP socket接收所述主机所在子网内其他主机发送的同步数据;通过一主机内的网络同步模块从网络TCP socket接收所述主机所在子网外的主机发送的同步数据。本发明专利技术还提供与详述方法对应的系统。通过上述方法及系统,需要进行同步的数据及其特有的处理逻辑等可向该系统进行注册,实现将处理逻辑与同步系统分离。

【技术实现步骤摘要】
一种基于reactor模式的网络数据同步方法及系统
本专利技术涉及计算机网络
,具体涉及一种基于reactor模式的网络数据同步方法及其系统。
技术介绍
在大数据接入下,一种服务由多台主机组成的子网,甚至多个子网组成的网络进行提供。实现子网间或子网内不同主机间重要数据实时同步,使每台主机重要数据保持完整性和一致性,是具有重要意义的。中国专利技术专利申请“CN101667910A一种快速网络数据同步方法及其系统”,提供了一种多主机多子网之间的快速数据同步的方法。包括下列步骤,在每个子网中设置一主机作为本地子网的中转节点;在每一中转节点内加载一配置文件,中转节点之间采用TCP方式连接;子网内的主机将需同步数据通过广播方式在本地子网内进行传输;中转节点根据所加载的配置文件将需同步数据传输到制定子网的中转节点;其他子网的中转节点将受到的需同步数据通过广播方式在本地子网内进行传输。其系统包括若干子网,每个子网中设置一主机作为本地子网的中转节点,中转节点之间通过TCP方式连接,子网内部的主机之间通过广播方式连接;中转节点内包括一配置文件。通过上述方案虽然能够实现网络数据的快速同步,然而在当前业务系统中,存在多种不同类型重要数据需要实时同步,如对于固网数据,为实现用户上网数据与用户AD关联,考虑到用户上网数据与Radius认证数据可能不会分发到同一个主机上,需要将Radius认证数据进行子网内实时同步,而对于3G数据,为实现用户上网数据与用户终端关联,则需要将Gtp信令数据进行实时同步。后续随着系统处理业务的增加,还将会有更多类型的数据进行实时同步。在现有技术实际工程中,每次新增同步数据类型,均需要从端到端的考虑同步流程,当新增数据类型对应的发送目的地址或目的端口不同时,需要关注实现细节,即增加socket、维护socket,即使能够复用已有端口,也需要在端口上区分数据类型,从而调用不同的处理函数。另外,如果该数据类型对发送优先级有要求,则甚至需要新建数据缓存Ringbuffer,并控制发送策略,这些都涉及到对同步机制的修改,每新增一种数据类型,均需要耗费较大开发成本,并且导致代码可维护性、可读性更差。而理论上,同步系统不应该与业务处理混杂在一起,而应该为上层业务提供一个同步通道,并维护通道的畅通性。为更方便理解,以现实中的快递货物为例,发货人拨打快递公司的电话,快递员上门收货,发货人将要发送的货物交给快递员并告知发送目的地址并选择发送优先级(加急、普通、平邮等),此后发货人不需要关注快递公司内部的任务分发、货物运输路线等情况,这一切由快递公司负责,最终快递公司按照客户事先约定的要求,将货物交给收货人。同步系统实现快递公司角色,发货人只需要将货物准备好并打个电话,收货人则负责对送到手的货物进行处理,这样从整个架构上实现了上层业务与同步系统的分层。现有技术实际工程中,发货人、快递员、收货人的角色定义并不清晰,发货人为了将货物发出去,可能需要自己提前把路铺好。各同步数据的处理逻辑与复杂的多线程和同步机制混杂在一起,随着需求变化,每次新增或更新同步数据类型,都要对既有机制带来影响。从传输的同步数据角度,提出一种新的方法,能够方便快捷地添加同步数据类型,在子网内及其子网间能够实时网络同步为本领域的迫切需要解决的问题。
技术实现思路
针对上述问题,本专利技术的目的是提供一种基于reactor模式的网络数据同步方法,基于一子网内多个主机及所述子网外的多个主机组成的网络,所述主机均包括一网络同步模块,包括以下步骤:通过一主机内的网络同步模块将该主机所产生的的同步数据发往所述主机所在子网内的其他主机;通过一主机内的网络同步模块从网络UDPsocket接收所述主机所在子网内其他主机发送的同步数据;通过一主机内的网络同步模块从网络TCPsocket接收所述主机所在子网外的主机发送的同步数据。具体地,通过网络同步模块将所有与其交互触发的同步数据作为事件进行管理,网络同步模块包括事件多路分解模块、事件处理模块;所述事件多路分解模块用以读取事件及分发事件,所述事件处理模块用以注册所述同步数据的处理函数。进一步地,所述事件多路分解模块独立运行于一主线程,所述事件处理模块运行于由多个worker线程组成的线程池。进一步地,所述读取事件及分发事件通过注册所述交互触发的同步数据的类型的分发策略实现,所述分发策略包括Round-Robin模式、优先级模式及指定线程模式。进一步地,所述注册所述交互触发的同步数据的处理函数,包括所述同步数据本地处理逻辑及转发处理逻辑。进一步地,所述主机还包括一上层应用模块,所述事件多路分解模块包括一网络应用模块,所述事件处理模块包括一网络通讯模块。进一步地,所述网络应用模块用以初始化时注册到网络通讯模块,使用通用网络通道,控制发送策略;所述上层应用模块,对于需要同步的同步数据,初始化时注册到网络同步模块,需要网络同步时直接调用网络同步发送接口即可;所述网络通讯模块用以根据各上层网络应用模块注册到网络通讯模块的配置,创建线程池、维护socket状态、监听socket事件。本专利技术的另一目的是提供一种实现上述方法的系统,其包括:一子网内多个主机及所述子网外的多个主机组成的网络,所述主机均包括网络同步模块,所述网络同步模块用以将其所在主机产生的同步数据发往其所在子网内的其他主机、从网络UDPsocket接收所述主机所在子网内其他主机发送的同步数据、从网络TCPsocket接收子网外主机发送的同步数据。进一步地,所述网络同步模块还用以将所有与其交互触发的同步数据作为事件进行管理,包括事件多路分解模块、事件处理模块;所述事件多路分解模块用以读取事件及分发事件,所述事件处理模块用以注册所述数据的处理函数。进一步地,所述主机还包括一上层应用模块,所述事件多路分解模块包括一网络应用模块,所述事件处理模块包括一网络通讯模块。如上述,通过上述方法及系统,需要进行同步的数据及其特有的处理逻辑等可向该系统进行注册,实现将处理逻辑与同步系统分离。附图说明图1为本专利技术实施例中reactor模式的模块示意图。图2为本专利技术实施例中同步数据同步处理流程示意图。图3为本专利技术实施例中网络同步模块构成示意图。图4为本专利技术实施例中GTP信令数据同步流程示意图。具体实施方式为使本专利技术的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。本专利技术针对传统网络数据同步中的缺陷,提出一种高可复用的网络数据同步方法。如图1所示,网络同步模块与其他系统的交互触发类型有如下几种:1从本机的多个上层应用模块接收到同步数据;2从子网内其他主机接收到同步数据,其中,子网内同步数据使用UDPsocket传输;3从子网外主机接收到同步数据,其中,子网间同步数据使用TCPsocket传输;相应的,网络同步模块对应有以下功能点:1将本地产生的的同步数据发往其他主机2从网络UDPsocket接收子网内其他主机发送的同步数据。3从网络TCPsocket接收子网外主机发送的同步数据。如图2所示,基于reactor模式,将所有与网络同步模块的交互触发数据(本地数据、UDPsocket数据、TCPsocket数据等)作为事件进行管理,网络同步模块包括事件多路分解模块、事件处理模块本文档来自技高网
...
一种基于reactor模式的网络数据同步方法及系统

【技术保护点】
一种基于reactor模式的网络数据同步方法,基于一子网内多个主机及所述子网外的多个主机组成的网络,所述主机均包括网络同步模块,包括以下步骤:通过一主机内的网络同步模块将所述主机产生的同步数据发往所述主机所在子网内的其他主机,从网络UDP socket接收所述主机所在子网内其他主机发送的同步数据以及从网络TCP socket接收所述主机所在子网外的主机发送的同步数据。

【技术特征摘要】
1.一种基于reactor模式的网络数据同步方法,基于一子网内多个主机及所述子网外的多个主机组成的网络,所述主机均包括网络同步模块,包括以下步骤:通过一主机内的网络同步模块将所述主机产生的同步数据发往所述主机所在子网内的其他主机,从网络UDPsocket接收所述主机所在子网内其他主机发送的同步数据以及从网络TCPsocket接收所述主机所在子网外的主机发送的同步数据;通过网络同步模块将所有与其交互触发的同步数据作为事件进行管理,网络同步模块包括事件多路分解模块、事件处理模块;所述事件多路分解模块用以读取事件及分发事件,所述事件处理模块用以注册所述数据的处理函数;所述主机还包括一上层应用模块,所述事件多路分解模块包括一网络应用模块,所述事件处理模块包括一网络通讯模块。2.如权利要求1所述的基于reactor模式的网络数据同步方法,其特征在于,所述事件多路分解模块独立运行于一主线程,所述事件处理模块运行于由多个worker线程组成的线程池。3.如权利要求1所述的基于reactor模式的网络数据同步方法,其特征在于,所述读取事件及分发事件通过注册所述交互触发的同步数据的类型的分发策略实现,所述分发策略包括Round-Robin模式、优先级模式及指定线程模式。4.如权利要求1所述的基于reactor模式的网络数据同步方...

【专利技术属性】
技术研发人员:田慧萌
申请(专利权)人:北京锐安科技有限公司
类型:发明
国别省市:北京;11

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

1