一种任务数据同步的方法和系统与流程

文档序号:12494844阅读:210来源:国知局
一种任务数据同步的方法和系统与流程

本发明涉及内容分发网络技术领域,特别涉及一种任务数据同步的方法和系统。



背景技术:

互联网业务持续爆发式的增长,对应到服务提供端的后台则是后台服务器数量的持续爆发式的增长。具体而言,某个具体的互联网业务,在其诞生初期只需服务小部分客户,但随着客户量增多,旧有的后台服务器数量往往满足不了新的需求,此时服务提供端往往采取新增后台服务器的方式应对。

在内容分发网络中,一般对后台服务器的管理是通过节点服务器进行中心化调度,随着后台服务器数量不断增多,节点服务器的数量也相应增多。节点服务器侧会设立有管理服务器,用于管理多个节点服务器。为避免因数据错误而产生运行故障,节点服务器经常需要从管理服务器处获取数据进行同步,然而,由于节点服务器的数量较多,管理服务器的运行负荷较高。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种任务数据同步的方法和系统。所述技术方案如下:

第一方面,提供了一种任务数据同步的方法,所述方法运用于内容分发网络的自适应服务管理系统,所述自适应服务管理系统包括至少一个网络节点,每个网络节点由一个自治服务框架AMF服务器和至少一个自治服务代理AMA服务器组成,所述方法包括:

目标AMA服务器确定目标任务区间,获取所述目标任务区间对应的目标merkle tree,所述目标merkle tree的底层节点为任务ID;

所述目标AMA服务器在目标AMF服务器对应的网络节点内选择参考AMA服务器,向所述参考AMA服务器发送同步请求,所述同步请求中携带有所述目标任务区间的起止标识;

所述参考AMA服务器根据所述同步请求中携带的目标任务区间的起止标识,获取对应的参考merkle tree;

所述目标AMA服务器和所述参考AMA服务器基于merkle tree比对算法,比对所述目标merkle tree和所述参考merkle tree,根据比对结果进行任务数据同步。

第二方面,提供了一种任务数据同步的系统,所述系统包括:

目标AMA服务器,用于确定目标任务区间,获取所述目标任务区间对应的目标merkle tree,所述目标merkle tree的底层节点为任务ID;

所述目标AMA服务器,用于在目标AMF服务器对应的网络节点内选择参考AMA服务器,向所述参考AMA服务器发送同步请求,所述同步请求中携带有所述目标任务区间的起止标识;

所述参考AMA服务器,用于根据所述同步请求中携带的目标任务区间的起止标识,获取对应的参考merkle tree;

所述目标AMA服务器和所述参考AMA服务器,用于基于merkle tree比对算法,比对所述目标merkle tree和所述参考merkle tree,根据比对结果进行任务数据同步。

本发明实施例提供的技术方案带来的有益效果是:

本发明实施例中,目标AMA服务器确定目标任务区间,获取目标任务区间对应的目标merkle tree,目标merkle tree的底层节点为任务ID,目标AMA服务器在目标AMF服务器对应的网络节点内选择参考AMA服务器,向参考AMA服务器发送同步请求,同步请求中携带有目标任务区间的起止标识,参考AMA服务器根据同步请求中携带的目标任务区间的起止标识,获取对应的参考merkle tree,目标AMA服务器和参考AMA服务器基于merkle tree比对算法,比对目标merkle tree和参考merkle tree,根据比对结果进行任务数据同步。这样,目标AMA服务器需要进行任务数据同步时,可以从同一网络节点内的其它AMA服务器处获取任务数据,不会增加管理服务器运行负荷。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种任务数据同步的方法流程图;

图2是本发明实施例提供的一种merkle tree比对算法的流程图;

图3是本发明实施例提供的一种确定底层差异节点的流程图;

图4是本发明实施例提供的一种任务数据同步的流程示意图;

图5是本发明实施例提供的一种LAM系统的框架示意图;

图6是本发明实施例提供的一种自适应服务管理的方法流程图;

图7是本发明实施例提供的一种处理任务请求的方法流程图;

图8是本发明实施例提供的一种处理任务请求的逻辑流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本发明实施例提供了一种数据同步的方法,该方法可以应用于内容分发网络的自适应服务管理系统,也可以称为LAM(Local Autonomous Manager,局部自治管理)系统,如图5所示,该系统包括至少一个网络节点,一个网络节点可以为单个机房,也可以是多个机房,每个网络节点对应一个AMF(Autonomous Management Framework,自治服务框架)服务器(可称为管理服务器)和至少一个AMA(Autonomous Management Agent,自治服务代理)服务器(可称为节点服务器),AMF服务器用于管理每个节点内的所有AMA服务器,同时可以对外接收业务请求端(可以认为是客户端)发送的任务请求,AMA服务器用于处理与服务提供方相关的服务,如业务的注册注销、业务的存活探测以及硬件资源管理,以及向服务提供端转发的任务请求。服务器提供端为业务提供方开发的具体服务器,只要满足接入条件的服务器,都可以通过AMA服务器接入到LAM系统中,AMR(Autonomous Management Resolve,自治服务解析)服务器负责将AMF服务器的域名地址解析为具体的IP(Internet Protocol,网络协议)地址,供AMA服务器探测。

下面将结合具体实施方式,对图1所示的处理流程进行详细的说明,内容可以如下:

步骤101,目标AMA服务器确定目标任务区间,获取目标任务区间对应的目标merkle tree(默克尔树),目标merkle tree的底层节点为任务ID。

在实施中,当LAM系统接收到业务请求端发送的任务请求时,与该业务请求端相连的AMF服务器可以为该任务请求分配任务ID,其中,多个任务请求的任务ID相互连续,且每个任务ID唯一不重复,任务ID的格式可以为:TaskID001、TaskID002、TaskID003等。AMF服务器可以将任务请求发送给其管理的所有AMA服务器。AMA服务器接收到任务请求后,可以将任务请求的所有内容保存于数据库中,并将任务ID以merkle tree的形式另外保存于磁盘,merkle tree可以是完全二叉树,merkle tree的底层节点的节点数据为已存储的任务ID或者表示未存储的None值,其余每个节点的节点数据均是基于预设的计算规则,由其下一层节点的节点数据计算得到的。为了减少磁盘和内存占用,每个Merkle Tree最大层数可以为15,则每个merkle tree保存的任务ID总数不超过215-1,即16384个。而当任务总数超过215-1时,可以以子merkle tree和父merkle tree的形式存储任务ID,即子merkle tree的底层节点的节点数据为任务ID或者表示未存储的None值,子merkle tree的顶层节点的节点数据为父merkle tree的底层节点的节点数据,而父merkle tree的最大层数也可以为15,故而一个父merkle tree可以记录215-1x 215-1个任务ID。当AMA服务器接收到新的任务请求后,则可以将其任务ID存储至merkle tree中对应的位置,即覆盖None值。AMF服务器可以为其管理的所有AMA服务器划分统一的任务区间,任务区间的大小、数量可以由AMF服务器指定,且支持定时回滚,如:任务区间大小为10,数量为3,则分别为[TaskID000,TaskID009]、[TaskID010,TaskID019]、[TaskID020,TaskID029];如果任务TaskID030到来,任务区间将变为[TaskID010,TaskID019]、[TaskID020,TaskID029]、[TaskID030,TaskID039],删除任务区间[TaskID000,TaskID009]。

AMA服务器可以周期性的与同一网络节点内的其它AMA服务器进行数据同步,即同步任务数据。当某个AMA服务器(即目标AMA服务器)需要发起数据同步时,可以先确定本次需要同步的任务区间(即目标任务区间),然后获取本地存储的目标任务区间对应的目标merkle tree,如果目标任务区间包含的任务ID数量大于215-1个,则可以获取多个目标子merkle tree,然后目标AMA服务器可以基于多个目标子merkle tree生成目标父merkle tree,这样,后续处理均可以认为是对目标父merkle tree进行的。

步骤102,目标AMA服务器在目标AMF服务器对应的网络节点内选择参考AMA服务器,向参考AMA服务器发送同步请求,同步请求中携带有目标任务区间的起止标识。

在实施中,目标AMA服务器可以在目标AMF服务器对应的网络节点内的其它AMA服务器中任意选择一个参考AMA服务器,作为数据同步的对象。之后,目标AMA服务器可以向参考AMA服务器发送同步请求,该同步请求中可以携带有步骤101中目标AMA服务器确定的目标任务区间的起止标识,该起止标识可以是目标任务区间首尾两个任务ID值。

步骤103,参考AMA服务器根据同步请求中携带的目标任务区间的起止标识,获取对应的参考merkle tree。

在实施中,参考AMA服务器接收目标AMA服务器发送的同步请求,获取其中携带的目标区间的起止标识,之后则可以获取本地磁盘中存储的,该起止标识对应的参考merkle tree。同理,如果目标任务区间包含的任务ID数量大于215-1个,则可以获取多个参考子merkle tree,然后参考AMA服务器可以基于多个参考子merkle tree生成参考父merkle tree,这样,后续处理均可以认为是对参考父merkle tree进行的。

步骤104,目标AMA服务器和参考AMA服务器基于merkle tree比对算法,比对目标merkle tree和参考merkle tree,根据比对结果进行数据同步。

在实施中,在目标AMA服务器和参考AMA服务器分别获取到目标merkle tree和参考merkle tree后,可以基于merkle tree比对算法,比对目标merkle tree和参考merkle tree中相同位置节点的节点数据是否一致,之后可以根据比对结果来进行相应的数据同步。具体的,目标/参考AMA服务器可以将目标/参考merkle tree的节点数据发送给对方,以使参考/目标AMA服务器将接收到的对方merkle tree的节点数据和已获取的本机merkle tree的节点数据进行比对。

可选的,步骤104中的merkle tree比对算法可以具体如图2的流程所示:

步骤201,目标AMA服务器向参考AMA服务器发送目标merkle tree的第N层所有节点的节点数据,其中N为大于0的整数。

在实施中,目标AMA服务器在获取目标merkle tree之后,可以选取目标merkle tree的某一层(即第N层,N为大于0的整数)所有节点,然后将第N层所有节点的节点数据发送给参考AMA服务器。

步骤202,参考AMA服务器逐一比对参考merkle tree和目标merkle tree的第N层所有节点的节点数据。

在实施中,参考AMA服务器可以接收目标AMA服务器发送的目标merkle tree的第N层所有节点的节点数据,然后可以将参考merkle tree的第N层所有节点的节点数据与目标merkle tree的第N层所有节点的节点数据逐一及进行比对。

步骤203,如果存在节点数据在参考merkle tree和目标merkle tree中不一致的第N层差异节点,目标AMA服务器和参考AMA服务器则根据第N层差异节点确定底层差异节点。

在实施中,在比对的过程中,如果发现参考merkle tree和目标merkle tree中某一相同位置节点的节点数据不一致,则可以将该节点标记为差异节点。在比对完第N层所有节点的节点数据后,目标AMA服务器和参考AMA服务器可以根据标记出的所有第N层差异节点确定底层差异节点。需要说明的是,在本实施例中,目标AMF服务器管理的网络节点内的不同AMA服务器对应的不同merkle tree中,相同位置节点可以认为是同一个节点,故而如非具体限定,当对某一个节点进行处理时,是对不同merkle tree中节点同时进行处理,如上述“将该节点标记为差异节点”的处理,可以理解为“同时将参考merkle tree和目标merkle tree中对应的节点标记为差异节点”。

步骤204,参考AMA服务器向目标AMA服务器发送底层差异节点对应的任务数据,以使目标AMA服务器完成任务数据同步。

在实施中,在确定出底层差异节点后,参考AMA服务器可以获取该底层差异节点的节点数据,即任务ID,然后在本地数据库中获取对应的任务数据,进而参考AMA服务器可以将底层差异节点对应的任务数据发送给目标AMA服务器,以使目标AMA服务器存储任务数据,并更新目标merkle tree,完成任务数据同步。

可选的,如果参考merkle tree和目标merkle tree的第N层所有节点的节点数据均一致,参考AMA服务器则向目标AMA服务器发送同步取消消息。

在实施中,如果参考merkle tree和目标merkle tree的第N层所有节点的节点数据均一致,则表示无需进行本次同步,故而参考AMA服务器可以向目标AMA服务器发送同步取消消息,本次同步结束。

可选的,步骤203中目标AMA服务器和参考AMA服务器根据第N层差异节点确定底层差异节点的处理可以如图3流程所示:

步骤301,参考AMA服务器向目标AMA服务器发送第N层差异节点的节点标识。

在实施中,在确定了第N层差异节点之后,参考AMA服务器可以向目标AMA服务器发送第N层差异节点的节点标识,该节点标识可以是节点的位置信息,如第N层第M个节点。

步骤302,目标AMA服务器向参考AMA服务器发送目标merkle tree的第N+1层中第N层差异节点的所有下层节点的节点数据。

在实施中,目标AMA服务器接收到参考AMA服务器发送的第N层差异节点的节点标识后,可以根据该节点标识确定差异节点的下层节点,然后将目标merkle tree的第N+1层中第N层差异节点的所有下层节点的节点数据发送给参考AMA服务器,例如,目标merkle tree为完全二叉树,差异节点为第N层第M个节点,则该差异节点的所有下层节点为第N+1层第2M-1、第2M个节点。

步骤303,参考AMA服务器逐一比对参考merkle tree和目标merkle tree的第N+1层中差异节点的所有下层节点的节点数据,确定第N+1层差异节点。

在实施中,参考AMA服务器接收到目标AMA服务器发送的目标merkle tree的第N+1层中差异节点的所有下层节点的节点数据,可以将其与参考merkle tree的第N+1层中差异节点的所有下层节点的节点数据逐一进行比对,然后确定出节点数据不一致的第N+1层差异节点。

步骤304,当第N+1层为最底层时,所述参考AMA服务器确定底层差异节点。

在实施中,在确定了第N+1层差异节点后,可以按照步骤301到步骤303的处理确定下层差异节点,这样,以此类推,当第N+1层为merkle tree的最底层时,则可以确定底层差异节点。

可选的,为避免过多AMA服务器同时发起同步请求造成网络节点内的带宽压力过大,AMA服务器在进行任务数据同步前需要确定是否具备同步权限,相应的处理可以如下:目标AMA服务器接收目标AMF服务器发送的同步计数值和AMA服务器总数,目标AMA服务器根据同步计数值和AMA服务器总数,以及本机序号判断是否具备同步权限。

在实施中,为了保障各AMA服务器的任务数据的正确性,同一网络节点内的AMA服务器需要轮流进行任务数据同步。AMF服务器可以为其管理的网络节点内的所有AMA服务器分配序号,同时可以向所有AMA服务器提供同步计数值和AMA服务器总数。故而,目标AMA服务器可以接收目标AMF服务器发送的同步计数值和AMA服务器总数。此处,同步计数值和AMA服务器总数的处理可以是在目标AMA服务器即将进行任务数据同步前主动从目标AMF服务器获取的,也可以是同步计数值和AMA服务器总发生变化后目标AMF服务器主动发送给目标AMA服务器的。之后目标AMA服务器可以根据同步计数值和AMA服务器总数,以及本机序号判断是否具备同步权限,具体的,即当满足公式“同步计数值”%“AMA服务器总数”==“目标AMA服务器序号”时,目标AMA服务器具备同步权限,其中,“%”为取余数运算。另外,当本次同步结束后,目标AMA服务器可以向目标AMF服务器发送同步完成消息,目标AMF服务器则可以将同步计数值加一。

图4示出了一种可行的任务数据同步的流程示意图。

本发明实施例中,目标AMA服务器确定目标任务区间,获取目标任务区间对应的目标merkle tree,目标merkle tree的底层节点为任务ID,目标AMA服务器在目标AMF服务器对应的网络节点内选择参考AMA服务器,向参考AMA服务器发送同步请求,同步请求中携带有目标任务区间的起止标识,参考AMA服务器根据同步请求中携带的目标任务区间的起止标识,获取对应的参考merkle tree,目标AMA服务器和参考AMA服务器基于merkle tree比对算法,比对目标merkle tree和参考merkle tree,根据比对结果进行任务数据同步。这样,目标AMA服务器需要进行任务数据同步时,可以从同一网络节点内的其它AMA服务器处获取任务数据,不会增加管理服务器运行负荷。

本发明实施例还提供了一种自适应服务管理的方法,该方法可以应用于上述内容分发网络的自适应服务管理系统。

下面将结合具体实施方式,对图6所示的处理流程进行详细的说明,内容可以如下:

步骤601,目标自治服务代理AMA服务器根据预先存储的至少一个自治服务框架AMF服务器的地址信息,向至少一个AMF服务器发送第一探测消息。

在实施中,在实施中,未加入任何AMF服务器的AMA服务器可以被称为游离AMA服务器,游离AMA服务器需通过自适应的探测机制加入到AMF服务器中。现有一游离AMA服务器(即目标AMA服务器),目标AMA服务器中可以预先存储有至少一个AMF服务器的地址信息,然后目标AMA服务器可以标记探测过程开始,并设置超时时间(比如5秒),同时目标AMA服务器根据上述地址信息向至少一个AMF服务器发起连接,并发送探测包(即第一探测消息),该包的ID可以为ID1。

步骤602,至少一个AMF服务器接收目标AMA服务器发送的第一探测消息,向目标AMA服务器返回对应第一探测消息的第一探测响应。

在实施中,LAM系统中的部分AMF服务器(即至少一个AMF服务器)可以接收到目标AMA服务器发送的第一探测消息,然后可以向目标AMA服务器返回对应第一探测消息的第一探测响应。

步骤603,目标AMA服务器接收到至少一个AMF服务器返回的第一探测响应,在至少一个AMF服务器中选择目标AMF服务器,并向目标AMF服务器发送加入请求。

在实施中,目标AMA服务器接收到至少一个AMA服务器返回的第一探测响应后,可以根据第一探测响应在上述AMA服务器中选择一个待加入的AMF服务器(即目标AMF服务器),并标记探测过程结束,从而目标AMA服务器可以向目标AMF服务器发送加入请求。

步骤604,目标AMF服务器接收目标AMA服务器发送的加入请求,将目标AMA服务器添加至目标AMF服务器对应的网络节点内。

在实施中,目标AMF服务器接收到目标AMA服务器发送的加入请求后,可以将目标AMA服务器添加至目标AMF服务器对应的网络节点内。

可选的,上述步骤601至步骤604的处理可以称为单向探测,探测机制还可以包括双向探测,相应的,步骤602之后还包括如下处理:如果至少一个AMF服务器与目标AMF服务器处于同一网络节点,或者目标AMA服务器拥有外网IP,至少一个AMF服务器则向目标AMA服务器发送第二探测消息,目标AMA服务器接收至少一个AMF服务器发送的第二探测消息,向至少一个AMF服务器发送第二探测响应。

在实施中,至少一个AMF服务器在向目标AMA服务器发送对应探测消息的探测响应之后,可以根据目标AMA服务器的网络地址判断其所处的网络节点,如果AMF服务器与目标AMF服务器处于同一网络节点,或者目标AMA服务器拥有外网网络协议IP地址,则AMF服务器可以向目标AMA服务器发送第二探测消息;目标AMA服务器接收至少一个AMF服务器发送的第二探测消息,向至少一个AMF服务器发送第二探测响应,从而上述至少一个AMF服务器可以接收目标AMA服务器发送的第二探测响应,这样,双向探测即完成。需要说明的是,在AMA服务器选择待加入的AMF服务器时,双向探测结果优先级高于单向探测,即AMA服务器总是优先加入双向探测成功的AMF服务器,故而相应的选择处理可以如下:在已接收到的第二探测消息对应的至少一个AMF服务器中,选择目标AMF服务器,即目标AMA服务器可以优先在接收到的第二探测消息对应的所有AMF服务器中选取目标AMF服务器。

可选的,目标AMA服务器可以根据各AMF服务器的响应速度选择目标AMF服务器,相应的,步骤604的处理可以如下:对于至少一个AMF服务器中的每个AMF服务器,目标AMA服务器计算向AMF服务器发送第一探测消息的时刻,与接收到AMF服务器返回的第一探测响应的时刻之间的时间差值,选择时间差之最小的AMF服务器作为目标AMF服务器。

在实施中,目标AMA服务器在向至少一个AMF服务器发送第一探测消息时,可以开始计时,然后每接收到一个AMF服务器反馈的第一探测响应,则记录一下对应该AMF服务器的探测耗时,然后可以选择探测耗时最短的AMF服务器作为目标AMF服务器,这样,则可以选择出与目标AMA服务器之间的网络质量最好的AMF服务器。

可选的,本方案还提供了一种服务提供端在AMA服务器上注册业务进程的处理,相应的处理可以如下:目标AMA服务器接收服务提供端发送的业务进程注册请求,业务进程注册请求中携带有注册信息,其中,注册信息至少包括业务标识、服务端口标识、业务进程标识、业务通知方式;目标AMA服务器根据注册信息检测注册信息业务进程注册请求是否有效,如果是,则允许业务进程注册请求;如果否,则向服务提供端发送注册错误信息。

在实施中,LAM系统支持目标AMA服务器对本机不同业务进行动态的插件式管理。动态是指LAM系统预先并不知道哪些服务提供端会进行业务进程注册。插件式是指业务进程的注册或注销并不影响其他LAM系统的功能,如服务提供端的业务进程注册、业务进程存活探测、业务进程注销、业务资源控制以及业务数据推送等。服务提供端在目标AMA服务器上进行业务进程注册需满足以下条件:业务必须是目标AMA服务器支持的业务,业务必须以进程为单位进行注册,注册的端口需支持HTTP协议。

业务进程注册的过程可以为:服务提供端先连接到目标AMA服务器,服务提供端可以向目标AMA服务器发送业务进程注册请求,内容包括:业务标识,服务端口标识,业务进程ID,以及业务通知方式。其中业务标识用于和上述任务请求中的服务名进行比对,“服务端口标识”是任务请求发往的目标端口,也即服务端口,“服务端口标识”和“业务进程ID”共同用于判断业务进程的正确性,“业务通知方式”为目标AMA服务器向服务提供端发送任务请求的方式。之后,目标AMA服务器可以检查业务进程注册请求的有效性,包括:服务端口和业务进程ID是否匹配,业务进程ID是否存活等。一旦校验成功,AMA服务器将上述注册信息同步到LAM系统,并向服务提供端返回注册结果;反之则返回错误信息。

值得一提的是,业务进程注册完成后,仍需定时向目标AMA服务器发送注册信息,此时目标AMA服务器会自动将其视为心跳信号。如果业务进程的心跳信号持续丢失且达到上限(比如5次),该业务进程将被自动注销,即如果在预设时长内未接收到目标业务进程的心跳信号,目标AMA服务器则注销目标业务。具体的:如果业务进程意外退出导致来不及主动注销,或业务逻辑异常导致进程僵死,将触发自动注销逻辑:目标AMA服务器在预设时长内未接收到目标业务进程的心跳信号,目标AMA服务器则可以判断业务进程是否存活,如果业务进程依然存活时触发告警(业务进程存活但心跳丢失,此时意味着业务卡死),无论业务进程是否存活,都删除业务进程对应的注册信息。

业务进程注册完成后,将由目标AMA服务器进行资源管理,包括CPU核数控制,内存使用数控制。LAM系统中接入的业务进程在重要性上存在差异,需保证重要业务进程拥有更多的硬件资源,因此在硬件方面可以采用主管设置的方式来实现。

可选的,本方案还提供了一种业务进行注册完成后,处理业务请求端发送的任务请求的处理流程,相应的处理可以如图7所示:

步骤701,目标AMF服务器接收业务请求端发送的任务请求,任务请求中携带有目标AMA服务器标识。

其中,AMA服务器标识可以是AMA服务器的ID(identification,身份)。

在实施中,业务请求端可以与LAM系统中的某个AMF服务器(即目标AMF服务器)进行通信连接,当业务请求端需要获取某项服务提供端提供的服务时,可以向目标AMF服务器发送该服务相应的任务请求,同时,业务请求端可以指定至少一个AMA服务器(如目标AMA服务器)处理本次任务请求,这样,任务请求中则可以携带有目标AMA服务器标识。

步骤702,目标AMF服务器向目标AMA服务器转发任务请求。

在实施中,目标AMF服务器接收到业务请求端发送的任务请求后,可以获取其中携带的目标AMA服务器标识,然后可以将上述任务请求转发给目标AMA服务器。如果任务请求中携带有附件,目标AMF服务器可以随机选择一台其对应的网络节点内的AMA服务器作为主AMA服务器,然后先将任务请求发往该AMA服务器进行预下载并将其缓存至节点内的cache机,以加速其他AMA服务器的下载过程。如果任务请求需要定时反馈,目标AMF服务器可以设定定时反馈的定时器并以此时为定时开始。如果目标AMF服务器未确定到对应的目标AMA服务器,则向业务请求端返回错误码。

步骤703,目标AMA服务器根据预先存储的业务标识和服务端口标识的对应关系,确定目标业务标识对应的目标服务端口标识。

其中,业务标识可以是业务名,服务端口标识可以是服务端口的ID。

在实施中,目标AMA服务器获取到目标业务标识后,可以在预先存储的业务标识和服务端口标识的对应关系中,查找目标业务标识对应的目标服务端口标识。此处,上述对应关系可以是目标服务提供端在目标AMA服务器上注册时,目标AMA服务器记录的。另外,如果目标AMA服务器无法查找到目标业务标识对应的目标服务端口标识,则可以返回错误码。

步骤704,目标AMA服务器向目标服务端口标识对应的目标服务提供端发送任务请求。

在实施中,目标AMA服务器在确定了目标服务端口标识之后,可以向目标服务端口标识对应的目标服务提供端发送任务请求。

可选的,目标AMA服务器可以根据目标服务提供端对应的业务通知方式,选择不同的方式发送任务请求,相应的,步骤304的处理可以如下:目标AMA服务器根据目标服务端口标识确定目标服务提供端,获取目标服务提供端对应的业务通知方式;如果目标服务提供端对应的业务通知方式为net_notify,目标AMA服务器则将任务请求发送给目标服务提供端;如果目标服务提供端对应的业务通知方式为file_notify,目标AMA服务器则存储任务请求,并将存储地址发送给目标服务提供端;如果目标服务提供端对应的业务通知方式为file,目标AMA服务器则存储任务请求。

在实施中,目标AMA服务器在确定了目标服务端口标识之后,可以根据目标服务端口标识确定目标服务提供端,获取目标服务提供端对应的业务通知方式。此处,目标服务提供端对应的业务通知方式可以是目标服务提供端在目标AMA服务器上注册时,目标AMA服务器记录的。其中,目标AMA服务器支持三种不同业务通知方式,以适应不同的服务需求,包括:net_notify(网络通知),目标AMA服务器直接将任务请求发送给目标服务提供端,适用于数据量小且频繁的服务,具体步骤为:目标AMA服务器直连至目标服务端口,向目标服务提供端发送任务请求,目标服务提供端进行响应;file_notify(文件通知),目标AMA服务器将任务请求写入到磁盘,随后通知目标服务提供端,适用于数据量大且实时性要求高的服务,具体步骤为:目标AMA服务器先将任务请求保存于磁盘,再连接至目标服务端口,向目标服务提供端发送存储路径,目标服务提供端进行响应;file(文件),AMA服务器将任务请求写入到磁盘即为结束,适用于数据量大且实时性要求不高的服务。

步骤705,目标AMA服务器接收目标服务提供端发送的任务请求反馈,并将任务请求反馈发送给目标AMF服务器。

在实施中,目标AMA服务器向目标服务提供端发送任务请求后,目标服务提供端可以对任务请求进行反馈,从而,目标AMA服务器可以接收到目标服务提供端发送的任务请求反馈,然后可以将任务请求反馈发送给目标AMF服务器。

步骤706,目标AMF服务器接收目标AMA服务器发送的任务请求反馈,将任务请求反馈发送给业务请求端。

在实施中,目标AMF服务器可以接收至少一个目标AMA服务器发送的任务请求反馈,然后汇总各个任务请求反馈,并向业务请求端反馈结果。如果任务请求需要定时反馈,此时可以关闭定时反馈。

图8为上述步骤701至706对应的简单逻辑流程图。

可选的,本方案还提供了一种服务提供端在AMA服务器上主动注销业务的处理,相应的处理可以如下:目标AMA服务器接收服务提供端发送的业务进程注销请求,业务进程注销请求中携带有注销信息,其中,注销信息至少包括业务标识、服务端口标识、业务进程标识、业务通知方式;目标AMA服务器根据注销信息检测业务进程注销请求是否有效,如果是,则允许业务进程注销请求;如果否,则向服务提供端发送注销错误信息。

在实施中,服务提供端可向AMA服务器主动发送业务进程注销请求,此种注销方式为主动注销,主动注销需满足以下条件:注销的业务进程必须是目标AMA服务器支持的业务进程,必须以进程为单位进行注销。服务提供端的主动注销过程可以为:服务提供端连接到目标AMA服务器,向目标AMA服务器发送业务进程注销请求,内容包括:业务标识,服务端口标识,业务进程标识。目标AMA服务器可以检测业务进程注销请求的有效性,包括:服务端口和业务进程ID是否匹配,业务进程ID是否存活等。如果有效,目标AMA服务器则可以从LAM系统中删除业务进程的注册信息,并向服务提供端返回注销结果。

本发明实施例中,提出了LAM系统,该系统可以实现以下技术效果:

(1)通过自适应机制实现AMA服务器的动态归属,避免手动添加AMA服务器;

(2)采用“插件”方式,允许业务进程动态注册和多种注销方式,避免单个业务进程终止导致所有业务进程不可用的问题;

(3)支持多种业务接入方式,可满足不同业务量、不同实时性的服务需求;

(4)采用全局统一的资源管理机制,实现资源合理分配,避免重要业务的资源被抢占;

基于相同的技术构思,本发明实施例还提供了一种任务数据同步的系统,所述系统包括:

目标AMA服务器,用于确定目标任务区间,获取所述目标任务区间对应的目标merkle tree,所述目标merkle tree的底层节点为任务ID;

所述目标AMA服务器,用于在目标AMF服务器对应的网络节点内选择参考AMA服务器,向所述参考AMA服务器发送同步请求,所述同步请求中携带有所述目标任务区间的起止标识;

所述参考AMA服务器,用于根据所述同步请求中携带的目标任务区间的起止标识,获取对应的参考merkle tree;

所述目标AMA服务器和所述参考AMA服务器,用于基于merkle tree比对算法,比对所述目标merkle tree和所述参考merkle tree,根据比对结果进行任务数据同步。

可选的,所述目标AMA服务器,用于向所述参考AMA服务器发送目标merkle tree的第N层所有节点的节点数据,其中N为大于0的整数;

所述参考AMA服务器,用于逐一比对所述参考merkle tree和所述目标merkle tree的第N层所有节点的节点数据;

所述目标AMA服务器和所述参考AMA服务器,用于如果存在节点数据在所述参考merkle tree和所述目标merkle tree中不一致的第N层差异节点,则根据所述第N层差异节点确定底层差异节点;

所述参考AMA服务器向所述目标AMA服务器发送所述底层差异节点对应的任务数据,以使所述目标AMA服务器完成任务数据同步。

可选的,所述参考AMA服务器,还用于如果所述参考merkle tree和所述目标merkle tree的第N层所有节点的节点数据均一致,则向所述目标AMA服务器发送同步取消消息。

可选的,所述参考AMA服务器,用于向所述目标AMA服务器发送所述第N层差异节点的节点标识;

所述目标AMA服务器,用于向所述参考AMA服务器发送所述目标merkle tree的第N+1层中所述第N层差异节点的所有下层节点的节点数据;

所述参考AMA服务器,用于逐一比对所述参考merkle tree和所述目标merkle tree的第N+1层中所述差异节点的所有下层节点的节点数据,确定第N+1层差异节点,当第N+1层为最底层时,确定底层差异节点。

可选的,所述目标AMA服务器,还用于接收目标AMF服务器发送的同步计数值和AMA服务器总数,根据所述同步计数值和所述AMA服务器总数,以及本机序号判断是否具备同步权限。

本发明实施例中,目标AMA服务器确定目标任务区间,获取目标任务区间对应的目标merkle tree,目标merkle tree的底层节点为任务ID,目标AMA服务器在目标AMF服务器对应的网络节点内选择参考AMA服务器,向参考AMA服务器发送同步请求,同步请求中携带有目标任务区间的起止标识,参考AMA服务器根据同步请求中携带的目标任务区间的起止标识,获取对应的参考merkle tree,目标AMA服务器和参考AMA服务器基于merkle tree比对算法,比对目标merkle tree和参考merkle tree,根据比对结果进行任务数据同步。这样,目标AMA服务器需要进行任务数据同步时,可以从同一网络节点内的其它AMA服务器处获取任务数据,不会增加管理服务器运行负荷。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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