一种mesh网络集群及基于所述集群的大文件传输方法与流程

文档序号:14305027阅读:274来源:国知局
一种mesh 网络集群及基于所述集群的大文件传输方法与流程

本发明涉及无线网络技术领域,尤其涉及一种mesh网络集群,还涉及一种基于所述mesh网络集群的大文件传输方法。



背景技术:

无线mesh网络(无线网状网络)也称为“多跳(multi-hop)”网络,它是一种与传统无线网络完全不同的新型无线网络技术。

利用mesh网络技术可以组建一个集群网络。无线网状网是一种基于多跳路由、对等网络技术的新型网络结构,具有移动宽带的特性,同时它本身可以动态地不断扩展,自组网、自管理,自动修复、自我平衡。

市面上的mesh产品较少,没有一个具体的方案对组网中的设备进行管理,这样会导致,用户无法同时对所有的集群节点进行配置(无线信息,上网信息,行为管理等功能),无法在mpp节点故障时,重新自管理,自动恢复原来的组网配置,并且在传输大文件时,容易造成数据的阻塞,影响整个网络的数据交互。



技术实现要素:

为解决现有技术中的问题,本发明提供一种mesh网络集群,用于为用户提供mesh组网中配置同步下发和信息上报;还提供一种基于所述mesh网络集群的大文件传输方法,在不影响用户使用效果的情况下,完成文件之间的传输。

本发明mesh网络集群包括配置同步中心mpp和与配置同步中心mpp相连的1个以上的网络节点map,其中,所述配置同步中心mpp设有异步任务处理线程和redis本地服务器,所述配置同步中心mpp的异步任务处理线程与redis本地服务器交互,处理各网络节点map上报的状态和云服务器下发的命令操作与配置信息并保存在redis本地服务器中;所述网络节点map向配置同步中心mpp实时上报自己的状态信息,并接受配置同步中心mpp下发的最新配置信息进行同步。

本发明作进一步改进,所述配置同步中心mpp的异步任务处理线程以事件库的形式来处理网络节点map上报的状态信息及云服务器下发的命令操作与配置信息的保存。

本发明作进一步改进,所述异步任务处理线程的处理方法为:异步任务处理线程检查事件库中的的任务队列,判断是否有任务,如果没有,等待任务条件,如果有任务,就处理任务,处理完毕后,通知redis本地服务器的主线程任务处理完毕,主线程从事件库的任务队列中移除任务。

本发明作进一步改进,异步任务处理线程在事件库的处理过程中,时刻监听是否有任务进入任务队列。

本发明还提供一种基于所述mesh网络集群的大文件传输方法,包括如下步骤:

s1:配置同步中心mpp接收到云服务器下发的文件,当所述文件大小达到设定值或者硬件内存的设定比例时,判定为大文件;

s2:当接受的文件为大文件时,异步任务处理线程拉起第二服务器进程,专门用于大文件的传输;

s3:网络节点map的主线程拉起客户端进程用于接收大文件;

s4:当所有的大文件传输任务执行完毕后,异步任务处理线程关闭第二服务器进程。

本发明作进一步改进,其详细处理过程为:

a:异步任务处理线程接收到云服务器下发的大文件,将其保存在redis本地服务器中;b:异步任务处理线程触发事件库调用回调函数,拉起子线程发送数据包通知网络节点map准备接受大文件;

c:异步任务处理线程拉起第二服务器进程,并将校验信息同时发送给第二服务器进程;d:网络节点map的主线程收到通知,拉起客户端进程并向客户端进程发送大文件基本信息;e:客户端进程向第二服务器进程申请大文件;然后接收第二服务器发送的大文件;

f:第二服务器进程根据步骤c的校验信息对客户端进行校验,通过后,向客户端进程发送大文件;

g:客户端进程收到大文件后,根据步骤d中的大文件基本信息对大文件进行校验,校验无误后,向网络节点map主线程发送成功消息;

h:网络节点map主线程收到接收成功消息后,上报给配置同步中心mpp的异步任务处理线程;

i:异步任务处理线程将成功的事件从事件队列中移除,当所有的大文件传输任务被移除后,关闭第二服务器进程。

本发明作进一步改进,在步骤a中,异步处理线程在处理大文件传输时,还同时处理其他网络节点map的功能操作,包括配置无线信息或者添加新的网络节点map。

本发明作进一步改进,在步骤b中,所述数据包中包括套接字信息和大文件基本信息。

本发明作进一步改进,当需要传输大文件给多个网络节点map时,所述第二服务器进程拉起多个子进程异步处理大文件的发送。

本发明作进一步改进,所述异步处理线程为cmdsrv进程,所述网络节点map的主线程为cmdcli进程,其中,所述cmdsrv进程和cmdcli进程只起到信息交互作用。

与现有技术相比,本发明的有益效果是:(1)本发明采用redis本地服务器缓存与配置中心(cmdsrv)进程并存的形式,保证了各个节点信息上报和配置的存储,将在异常情况下,能够重现组网,重现自动管理,恢复配置。(2)本发明对配置中心进行单一化处理,只进行小数据流的交互,在大文件传输时,利用新进程进行数据传输,避免了配置中心和redis本地服务器的消息阻塞,保证用户和网络实时快速的通信。

附图说明

图1为本发明mesh网络集群拓扑图;

图2为mesh网络中配置同步中心mpp与网络节点map的进程间关系示意图;

图3为事件库异步阻塞方案处理方法示意图;

图4为图3的具体实现流程图;

图5为大文件处理方法一实施例方法流程图。

具体实施方式

下面结合附图和实施例对本发明做进一步详细说明。

本发明为用户提供mesh组网中配置同步下发和信息上报,并且在不影响用户使用效果的情况下,完成文件之间的传输,尤其适用于在各个节点之间的软件升级方面。

如图1所示,本发明mesh网络集群包括配置同步中心mpp(简称mpp)和与配置同步中心mpp相连的1个以上的网络节点map(简称map),其中:

mpp:代表的是mesh网络的网络出口,主要用于与网络(云服务器)之间的数据交互,并且作为整个mesh网络的管理配置中心,是整个集群网络最中心的部分;

map:代表的是mesh网络中的网络节点,主要应用与组网,可以不断扩张,与mpp构成整个集群。

如图2所示,所述配置同步中心mpp设有异步任务处理线程cmdsrv进程和redis本地服务器,各个网络节点map设有主进程cmdcli进程,其中,管理中心为cmdsrv进程,直接与各个map间的cmdcli进程通信,主要是数据的传输和链路的管理。cmdsrv进程自己与本地的redis服务器进程通信,来处理cmdcli上报的状态和云服务器下发的命令操作与配置的保存。

其中:

mpp中的cmdsrv进程与redis本地服务器交互,主要是将一些配置数据和收集上来的同步信息进行存储,始终保证redis本地服务器的配置信息最新;

map中的cmdcli进程与mpp中的cmdsrv进行数据交互,实时上报自己的状态信息,并且随时接受由mpp下发下来的最新配置来进行同步。

如图3所示,本发明的cmdsrv进程采用redis事件库来进行上面所述的工作,所述cmdsrv进程的处理方法为:异步任务处理线程检查事件库中的的任务队列,判断是否有任务,如果没有,等待任务条件,如果有任务,就处理任务,处理完毕后,通知redis本地服务器的主线程任务处理完毕,主线程从事件库的任务队列中移除任务。

本发明的具体实现方式如图4所示,包括如下步骤:

cmdsrv进程读取配置信息;

redis本地服务器的主线程初始化和任务子线程初始化,初始化soket监听;其中,在子线程初始化后,创建读写管道,设置线程信息,子线程事件库初始化,然后注册管道“可读”事件,创建成果,然后执行初始化soket监听步骤。

cmdsrv进程注册监听事件,然后循环执行事件库的任务,结束。其中,注册监听事件后,与cmdcli进程建立连接,处理各个cmdcli进程任务。

从图3和图4可以看出,在整个过程中,其实mpp自身的cmdsrv进程一直都处在工作状态,并且要实时保证基础信息在整个网络中能够传递。如果出现信息滞后的情况,容易给用户端的管理造成不便。

所以当要进行比较大的文件传输时,会占用太多的资源,影响cmdsrv进程和redis本地服务器的正常数据处理。于是本发明采用全新的大文件处理方法,作为对大文件传输时补充,本例大文件处理方法包括如下步骤:

s1:配置同步中心mpp接收到云服务器下发的文件,当所述文件大小达到设定大小或者硬件内存的设定比例时,判定为大文件那件,本例设定比例为50%,也就是说当文件大小达到硬件内存的50%以上时,即采用大文件处理方法,当然,也可以设定为30%、40%等其他的比例或者将大文件的判定值设定为定值;

s2:当接受的文件为大文件时,异步任务处理线程拉起第二服务器进程,专门用于大文件的传输;

s3:网络节点map的主线程拉起客户端进程用于接收大文件;

s4:当所有的大文件传输任务执行完毕后,异步任务处理线程关闭第二服务器进程。

如图5所示,本例以传输升级镜像文件为例进行说明。

cmdsrv进程下载云服务器下发的升级镜像文件时,通过数据流2下载到redis本地服务器(文件配置等信息的存储区域),此时cmdsrv进程同时还处理其他用户的功能操作,比如配置无线信息或者添加新的mesh节点等操作。

由于之前cmdcli进程在cmdsrv进程注册过升级事件,当cmdsrv进程收到升级镜像文件的时候,就触发事件库调用event_handle函数拉起子线程通知cmdcli进程准备接受升级镜像文件,并将套接字信息和镜像基本信息发送给cmdcli进程(数据流3),cmdsrv进程不能进行大文件传输,所以拉起另一个upgarde_srv服务器进程,专门用于异步的大文件传输,并携带注册过升级事件的信息传递给upgrade_srv服务器进程以作客户端申请的校验(数据流4)。当cmdcli进程收到回调函数信息,则拉起upgrade_cli客户端进程并发送升级镜像文件基本信息给upgrade_cli客户端进程,作为收到升级镜像文件后的数据校验(数据流5),upgrade_cli客户端进程主动向upprgade_srv服务器进程申请镜像(数据流6),upgrade_srv服务器进程正确的申请传递镜像文件(数据流7),upgrade_cli客户端进程在本地校验无误后,向cmdcli进程发送成功消息(数据流8),cmdcli进程然后将下载成功消息发送给cmdsrv进程进行操作(数据流9),cmdsrv进程将成功的事件移除事件队列,当所有的升级事件(多个map申请)全部被移除之后,cmdsrv进程进行垃圾回收,然后将upgrade_srv服务器进程关闭(数据流10)。

本例mesh网络集群以一个mpp和一个map设备来举例,当多个map节点同时去申请镜像文件时,第二服务器进程upgrade_srv就拉起多线程异步处理文件的发送。

从图5可以看出,当大文件传输时,cmdsrv进程和cmdcli进程只起到信息交互作用,将升级镜像文件的基本信息从mpp通知到map上面,将信息通知专门用于传输的文件的进程,可以很好的减少cmdsrv进程和cmdcli进程的负载压力。

本例的cmdsrv进程只是异步单一的处理简单的消息分发和少部分的短时间事件的处理,如果耗时较长的话,则单独启动不同的服务器,进行相应操作,最后将事件结果返回到cmdsrv进程,cmdsrv进程再对事件库中的事件队列进行增删改等。

由于mesh技术的产品较新,目前暂时没有一个特别稳定开源的方案进行用户的集群管理。本发明采用redis本地服务器缓存与配置同步中心(cmdsrv)进程并存的形式,保证了各个节点信息上报和配置的存储,将在异常情况下,能够重现组网,重现自动管理,恢复配置。此外,本发明对配置中心进行单一化处理,只进行小数据流的交互,在大文件传输时,利用新进程进行数据传输,避免了配置中心和redis本地服务器的消息阻塞,保证用户和网络实时快速的通信。

以上所述之具体实施方式为本发明的较佳实施方式,并非以此限定本发明的具体实施范围,本发明的范围包括并不限于本具体实施方式,凡依照本发明所作的等效变化均在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1