CN109936593B - 一种消息分发的方法和系统 - Google Patents

一种消息分发的方法和系统 Download PDF

Info

Publication number
CN109936593B
CN109936593B CN201711353336.6A CN201711353336A CN109936593B CN 109936593 B CN109936593 B CN 109936593B CN 201711353336 A CN201711353336 A CN 201711353336A CN 109936593 B CN109936593 B CN 109936593B
Authority
CN
China
Prior art keywords
task
target
message distribution
server
queue
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711353336.6A
Other languages
English (en)
Other versions
CN109936593A (zh
Inventor
杨辰凯
陈亮
林鸿其
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN201711353336.6A priority Critical patent/CN109936593B/zh
Publication of CN109936593A publication Critical patent/CN109936593A/zh
Application granted granted Critical
Publication of CN109936593B publication Critical patent/CN109936593B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种消息分发的方法和系统,属于网络通信技术领域。所述方法包括:当检测到空闲的任务处理线程时,边缘服务器向边缘服务器所属的目标区域服务器发送任务获取请求;目标区域服务器确定边缘服务器对应的目标任务队列,向边缘服务器发送目标任务队列中的待处理的目标消息分发任务,其中,目标任务队列中的目标消息分发任务由目标区域服务器所属的调度服务器生成;边缘服务器获取目标消息分发任务的应用程序属性信息,并根据应用程序属性信息,确定边缘服务器管理的至少一个目标应用程序;边缘服务器将目标消息分发任务解析为应用管理指令,通过至少一个目标应用程序执行应用管理指令。采用本发明,可以提高消息分发的效率。

Description

一种消息分发的方法和系统
技术领域
本发明涉及网络通信技术领域,尤其涉及一种消息分发的方法和系统。
背景技术
随着互联网的飞速发展,4K高清视频、互动游戏、AR(Augmented Reality,增强现实)、VR(Virtual Reality,虚拟现实)等应用不断兴起,随之而来的是对带宽需求的明显增加,原有的将CDN(Content Delivery Network,内容分发网络)节点构建在骨干网上的网络框架将无法支撑未来高带宽消耗应用的发展,亦不能满足普通用户的访问体验。随着业务流量的增加,为了提升用户体验,需要进行CDN节点下沉,即基于当前的IDC(Internet DataCenter,互联网数据中心)节点,增加地市级或社区级的CDN节点,缩减CDN节点与普通用户的距离,从而提升普通用户对网络内容的加速访问效果。
CDN节点下沉意味着边缘服务器总量增大,覆盖面更广,且各地区网络情况更复杂,大大增加了对边缘服务器进行软件部署、内容推送、配置管理等消息分发任务的难度。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
对于全网可通的服务器,中心服务器(又称调度服务器)需要将指令消息独立发送到每个边缘服务器。这样,消息聚合程度低,将占用调度服务器大量的系统资源,故而消息分发的效率较低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种消息分发的方法和系统。所述技术方案如下:
一方面,提供了一种消息分发的方法,所述方法包括:
当检测到空闲的任务处理线程时,边缘服务器向所述边缘服务器所属的目标区域服务器发送任务获取请求;
所述目标区域服务器确定所述边缘服务器对应的目标任务队列,向所述边缘服务器发送所述目标任务队列中的待处理的目标消息分发任务,其中,所述目标任务队列中的目标消息分发任务由所述目标区域服务器所属的调度服务器生成;
所述边缘服务器获取所述目标消息分发任务的应用程序属性信息,并根据所述应用程序属性信息,确定所述边缘服务器管理的至少一个目标应用程序;
所述边缘服务器将所述目标消息分发任务解析为应用管理指令,通过所述至少一个目标应用程序执行所述应用管理指令。
进一步的,所述当检测到空闲的任务处理线程时,边缘服务器向所述边缘服务器所属的目标区域服务器发送任务获取请求之前,还包括:
所述调度服务器基于接收到的消息分发请求生成所述目标消息分发任务,根据所述消息分发请求的请求参数,将所述目标消息分发任务添加至队列管理服务器的目标任务队列中;
所述队列管理服务器根据已存储的边缘服务器的属性信息,确定所述目标任务队列对应的至少一个所述边缘服务器;
所述队列管理服务器将所述目标任务队列,发送至所述至少一个所述边缘服务器所属的所述目标区域服务器。
进一步的,所述消息分发请求的请求参数包括消息分发类型和消息分发范围;
所述根据所述消息分发请求的请求参数,将所述目标消息分发任务添加至队列管理服务器的目标任务队列,包括:
所述调度服务器根据所述消息分发类型和所述消息分发范围,生成与所述目标消息分发任务对应的目标任务队列标识符;
所述调度服务器判断所述队列管理服务器中是否存在所述目标任务队列标识符对应的所述目标任务队列,如果存在,则将所述目标消息分发任务添加至所述目标任务队列;如果不存在,则指示所述队列管理服务器建立与所述目标任务队列标识符对应的所述目标任务队列,将所述目标消息分发任务添加至所述目标任务队列。
进一步的,所述根据所述消息分发请求的请求参数,将所述目标消息分发任务添加至队列管理服务器的目标任务队列之前,还包括:
所述调度服务器将生成的所述目标消息分发任务添加至所述调度服务器的等待队列,检测所述目标消息分发任务是否符合预设运行条件;
当所述目标消息分发任务符合预设运行条件时,则将所述目标消息分发任务从所述等待队列取出,将所述目标消息分发任务添加至所述目标任务队列。
进一步的,所述方法还包括:
所述边缘服务器获取所述至少一个目标应用程序对所述应用管理指令的执行状态,生成所述目标消息分发任务的任务执行结果;
所述目标区域服务器接收所述边缘服务器发送的所述任务执行结果,并将所述任务执行结果发送至所述队列管理服务器;
所述队列管理服务器根据接收的所述任务执行结果,更新所述目标消息分发任务的任务完成信息。
进一步的,所述方法还包括:
所述目标区域服务器接收所述边缘服务器的任务修复请求,所述任务修复请求中携带所述边缘服务器已处理的目标消息分发任务的最大任务编号;
所述目标区域服务器根据所述最大任务编号从所述队列管理服务器获取待修复任务,并发送至所述边缘服务器。
另一方面,提供了一种消息分发的系统,所述系统包括边缘服务器、区域服务器和调度服务器,其中:
边缘服务器,用于当检测到空闲的任务处理线程时,向所述边缘服务器所属的目标区域服务器发送任务获取请求;
目标区域服务器,用于确定所述边缘服务器对应的目标任务队列,向所述边缘服务器发送所述目标任务队列中的待处理的目标消息分发任务,其中,所述目标任务队列中的目标消息分发任务由所述目标区域服务器所属的调度服务器生成;
所述边缘服务器,还用于获取所述目标消息分发任务的应用程序属性信息,并根据所述应用程序属性信息,确定所述边缘服务器管理的至少一个目标应用程序;
所述边缘服务器,还用于将所述目标消息分发任务解析为应用管理指令,通过所述至少一个目标应用程序执行所述应用管理指令。
进一步的,所述系统还包括队列管理服务器,其中:
所述调度服务器,用于根据接收到的消息分发请求生成所述目标消息分发任务,根据所述消息分发请求的请求参数,将所述目标消息分发任务添加至队列管理服务器的目标任务队列中;
所述队列管理服务器,用于根据已存储的边缘服务器的属性信息,确定所述目标任务队列对应的至少一个所述边缘服务器;
所述队列管理服务器,还用于将所述目标任务队列,发送至所述至少一个所述边缘服务器所属的所述目标区域服务器。
进一步的,所述消息分发请求的请求参数包括消息分发类型和消息分发范围;
所述调度服务器,具体用于:
根据所述消息分发类型和所述消息分发范围,生成与所述目标消息分发任务对应的目标任务队列标识符;
判断所述队列管理服务器中是否存在所述目标任务队列标识符对应的所述目标任务队列,如果存在,则将所述目标消息分发任务添加至所述目标任务队列;如果不存在,则指示所述队列管理服务器建立与所述目标任务队列标识符对应的所述目标任务队列,将所述目标消息分发任务添加至所述目标任务队列。
进一步的,所述调度服务器,还用于:
在根据所述消息分发请求的请求参数,将所述目标消息分发任务添加至队列管理服务器的目标任务队列之前,将生成的所述目标消息分发任务添加至所述调度服务器的等待队列,检测所述目标消息分发任务是否符合预设运行条件;
当所述目标消息分发任务符合预设运行条件时,则将所述目标消息分发任务从所述等待队列取出,将所述目标消息分发任务添加至所述目标任务队列。
进一步的,所述边缘服务器,还用于获取所述至少一个目标应用程序对所述应用管理指令的执行状态,生成所述目标消息分发任务的任务执行结果;
所述目标区域服务器,还用于接收所述边缘服务器发送的所述任务执行结果,并将所述任务执行结果发送至所述队列管理服务器;
所述队列管理服务器,还用于根据接收的所述任务执行结果,更新所述目标消息分发任务的任务完成信息。
进一步的,所述目标区域服务器还用于:
接收所述边缘服务器的任务修复请求,所述任务修复请求中携带所述边缘服务器已处理的目标消息分发任务的最大任务编号;
根据所述最大任务编号从所述队列管理服务器获取待修复任务,并发送至所述边缘服务器。
本发明实施例提供的技术方案带来的有益效果是:
当检测到空闲的任务处理线程时,边缘服务器向边缘服务器所属的目标区域服务器发送任务获取请求;目标区域服务器确定边缘服务器对应的目标任务队列,向边缘服务器发送目标任务队列中的待处理的目标消息分发任务,其中,目标任务队列中的目标消息分发任务由目标区域服务器所属的调度服务器生成;边缘服务器获取目标消息分发任务的应用程序属性信息,并根据应用程序属性信息,确定边缘服务器管理的至少一个目标应用程序;边缘服务器将目标消息分发任务解析为应用管理指令,通过至少一个目标应用程序执行应用管理指令。这样,区域服务器中可以存储有调度服务器生成的消息分发任务所组成的任务队列,边缘服务器则可以从区域服务器处获取任务队列中的消息分发任务,无需调度服务器将消息分发任务逐个直接分配给边缘服务器,极大释放了调度服务器的系统资源,从而可以提高调度服务器的消息分发的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种消息分发的方法流程图;
图2是本发明实施例提供的一种消息分发的方法流程图;
图3是本发明实施例提供的一种消息分发的方法流程图;
图4是本发明实施例提供的一种消息分发的方法流程图;
图5是本发明实施例提供的一种消息分发的方法流程图;
图6是本发明实施例提供的一种消息分发的系统结构示意图;
图7是本发明实施例提供的另一种消息分发的系统结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种消息分发的方法,该方法的执行主体为CDN全网的消息分发系统,该消息分发系统可以用于将不同外部业务系统发送的消息分发请求转换为消息分发任务,再由本系统内的各层级处理设备对消息分发任务进行处理。下面给出一种具体的部署及运行场景,具体如下:
上述各层级处理设备可以分为三层,第一层处理设备主要包括调度服务器,其主要部署在各骨干网,用于接收各外部业务系统发送的消息分发请求,并将消息分发请求处理为消息分发任务,发送至第二层处理设备;第二层处理设备主要为区域服务器,其主要部署在骨干网和城域网的接口处,用于接收并缓存第一层处理设备下发的消息分发任务,以及将消息分发任务发送给其管理的各边缘服务器;第三层处理设备主要为边缘服务器,其主要部署在城域网,用于将接收的消息分发任务解析为具体的应用管理指令,之后,边缘服务器再通过相应的业务应用程序执行该应用管理指令。
需要说明的是,上述消息分发指令中的“消息”可以指外部业务系统需要发送至各业务应用程序的应用管理指令,包括内容获取指令、内容推送指令、实时控制指令等,业务应用程序在接收到应用管理指令后,可以基于各自的运行逻辑执行相应的应用管理指令。例如,内容获取指令可以包括业务系统实现获取各业务应用程序中缓存的图片、文字、视频等内容的指令;实时控制指令可以包括业务系统发送给各业务应用程序,以控制各业务应用程序安装、更新软件或者显示弹窗通知等指令;内容推送指令可以包括业务系统向各业务应用程序发送的用于推送图片、文字、视频等内容消息的指令。
下面将结合具体实施方式,对图1所示的一种消息分发的处理流程进行详细的说明,内容可以如下:
步骤101:当检测到空闲的任务处理线程时,边缘服务器向边缘服务器所属的目标区域服务器发送任务获取请求。
在实施中,边缘服务器中可以运行有大量的任务处理线程,每个任务处理线程都可以用于处理消息分发任务,边缘服务器处于工作状态时,可以通过多个任务处理线程同时处理多个消息分发任务。当某个任务处理线程处理完消息分发任务后,将进入空闲状态,等待后续待处理的消息分发任务的到来。这样,边缘服务器可以对本地的任务处理线程的工作状态进行检测,当边缘服务器中出现空闲的任务处理线程时,表明边缘服务器可以处理新的消息分发任务,此时,边缘服务器可以向其所属的区域服务器(即目标区域服务器)发送任务获取请求。
具体的,边缘服务器在检测到空闲的任务处理线程时,可以实时向目标区域服务器发送任务获取请求,也可以等空闲的任务处理线程达到预设数量时,再向目标区域服务器发送任务获取请求。例如,边缘服务器有十个任务处理线程,在某一个时刻,这十个任务处理线程均处在非空闲状态,当其中一个任务处理线程由非空闲状态转为空闲状态时,边缘服务器则可以实时向目标区域服务器发送任务获取请求,也可以等空闲的任务处理线程达到预设数量时,例如总共出现五个空闲的任务处理线程,再向目标区域服务器发送任务获取请求。
值得一提的是,每个任务处理线程可以同时处理预设数量个消息分发任务,如可以同时处理十个消息分发任务,当任务处理线程当前处理的消息分发任务的个数小于预设数量时,如九个、五个或者当前未处理任何消息分发任务,则可以认为该任务处理线程处于空闲状态。
进一步的,任务获取请求中可以包含有任务的获取数量,任务的获取数量可以通过统计每个空闲的任务处理线程的可处理任务的数量计算得出,例如,对于能够同时处理十个消息分发任务的任务处理线程,当该任务处理线程当前处理的任务个数为五个时,该任务处理线程处于空闲状态,其可处理任务的数量为五个。
步骤102:目标区域服务器确定边缘服务器对应的目标任务队列,向边缘服务器发送目标任务队列中的待处理的目标消息分发任务。
其中,目标任务队列中的目标消息分发任务由目标区域服务器所属的调度服务器生成。
在实施中,目标区域服务器在接收到边缘服务器发送的任务获取请求后,可以根据任务获取请求中携带的边缘服务器的属性信息,确定边缘服务器对应的目标任务队列。其中,边缘服务器对应的目标任务队列中,可以按照任务的生成时间的先后顺序存储有多个待处理的消息分发任务。目标区域服务器在确定出边缘服务器对应的目标任务队列后,可以根据任务获取请求中记录的可处理任务的数量,按照任务编号从小到大的顺序向边缘服务器发送多个消息分发任务。需要说明的是,目标任务队列中的目标消息分发任务,可以由目标区域服务器所属的调度服务器生成。
可选的,下面将对调度服务器生成消息分发任务的过程进行具体说明,如图2所示,相应的处理可以如下:
步骤201:调度服务器基于接收到的消息分发请求生成目标消息分发任务,根据消息分发请求的请求参数,将目标消息分发任务添加至队列管理服务器的目标任务队列中。
在实施中,消息分发系统中还可以设置有队列管理服务器,队列管理服务器中维护多个任务队列,队列管理服务器可以对任务队列中存储的消息分发任务进行编号,并对任务队列中的所有消息分发任务进行排序,队列管理服务器还可以按照调度服务器的指示创建新的任务队列。
调度服务器首先接收外部业务系统的消息分发请求,再根据接收到的消息分发请求生成消息分发任务。由于不同的外部业务系统所发送的消息分发请求往往各不相同,即使是同一业务系统,发送的消息类型也不相同,导致调度服务器接收到的消息分发请求的格式各不相同。调度服务器通过将消息分发请求转成由消息分发系统定义的、各处理设备均可以识别处理的消息分发任务,避免了各处理设备无法识别多种格式的消息分发请求的情况,同时还大大节省了用于区分不同格式的消息分发请求的处理资源。
可选的,消息分发请求的请求参数包括消息分发类型和消息分发范围。消息分发类型可以包括内容推送、内容获取、软件安装、指令执行等类型。消息分发范围是指“消息”要分发的接收对象,接收对象可以是边缘服务器,以及边缘服务器上具体执行该消息的目标应用程序。需要说明的是,根据消息分发请求生成的消息分发任务,同样包含有消息分发类型的相关信息和消息分发范围的相关信息。
可选的,调度服务器根据消息分发请求的请求参数,将目标消息分发任务添加至队列管理服务器的目标任务队列,具体处理可以为:
调度服务器根据消息分发类型和消息分发范围,生成与目标消息分发任务对应的目标任务队列标识符;
调度服务器判断队列管理服务器中是否存在目标任务队列标识符对应的目标任务队列,如果存在,则将目标消息分发任务添加至目标任务队列;如果不存在,则指示队列管理服务器建立与目标任务队列标识符对应的新目标任务队列,将目标消息分发任务添加至新目标任务队列。
在实施中,调度服务器可以将生成的消息分发任务添加至队列管理服务器中的任务队列中进行存储,进而队列管理服务器能够对相应的任务队列进行维护,例如对添加到任务队列中的消息分发任务进行编号,并按照编号顺序对任务队列中的所有消息分发任务进行排序,又例如创建新的任务队列等。
任务队列标识符可以是消息分发任务与该消息分发任务对应的目标任务队列的关联参数。根据目标消息分发任务对应的任务队列标识符,调度服务器能够指示队列管理服务器,查找或创建目标消息分发任务对应的目标任务队列,从而将目标消息分发任务添加到该目标任务队列中。
任务队列标识符可以由消息分发类型和消息分发范围计算得出,下面示例性地给出一种格式下的任务队列标识符,“purge:AppgroupId=1001”,其中,purge表示消息分发类型是内容推送,1001为具体应用程序的标识符,AppgroupId=1001表示消息分发范围是标识符为1001的应用程序的集合。不难理解,任务队列标识符标识了任务队列中任务的消息分发范围,即任务队列中的所有任务均有一个共同的消息分发范围,任务队列中的所有任务均是发送给在该消息分发范围对应的边缘服务器。例如,AppgroupId=1001表示的消息分发范围是应用程序1001的集合,那么,对于任务队列标识符为“purge:AppgroupId=1001”的任务队列,该任务队列中的所有任务的消息分发类型是内容推送,消息分发范围是运行有应用程序1001的边缘服务器。
可选的,在根据消息分发请求的请求参数,将目标消息分发任务添加至队列管理服务器的目标任务队列之前,还包括检测目标消息分发任务是否符合预设运行条件的过程,如图3所示,相应的处理可以如下:
步骤301:调度服务器将生成的目标消息分发任务添加至调度服务器的等待队列,检测目标消息分发任务是否符合预设运行条件。
其中,预设运行条件可以是技术人员预先设定的开始对消息分发任务进行处理的触发条件,如业务系统配置的并发任务数量不超过预设阈值,或者消息分发系统的每日任务数不超过预设阈值,例如,预设运行条件可以是调度服务器并发处理A业务系统的消息分发任务的数量最大为10000。
在实施中,调度服务器中还可以设置有等待队列,用于临时存储调度服务器生成的消息分发任务。调度服务器在将生成的目标消息分发任务添加至等待队列后,将检测目标消息分发任务是否符合预设运行条件,调度服务器可以实时检测目标消息分发任务是否符合预设运行条件,也可以按照预设周期值,周期性检测目标消息分发任务是否符合预设运行条件。
步骤302:当目标消息分发任务符合预设运行条件时,则将目标消息分发任务从等待队列取出,将目标消息分发任务添加至目标任务队列。
在实施中,如果调度服务器检测出目标消息分发任务符合预设运行条件,则可以开始对目标消息分发任务进行处理,具体的,可以将目标消息分发任务从等待队列中取出,并将其添加至目标任务队列。以预设运行条件为调度服务器并发处理A业务系统的消息分发任务的数量最大为10000为例,这样,当调度服务器并发处理A业务系统的消息分发任务的数量达到10000时,调度服务器将该A业务系统的新生成的消息分发任务,将继续添加至调度服务器的等待队列,直到调度服务器并发处理A业务系统的任务数量小于10000时,才将该A业务系统的新生成的消息分发任务从等待队列取出,并添加至目标任务队列。
步骤202:队列管理服务器根据已存储的边缘服务器的属性信息,确定目标任务队列对应的至少一个边缘服务器。
在实施中,队列管理服务器可以提前存储所有边缘服务器的属性信息,队列管理服务器结合边缘服务器的属性信息和目标任务队列的标识符,能够确定目标任务队列所对应的至少一个边缘服务器,该至少一个边缘服务器可以是目标任务队列所对应的所有的边缘服务器,也可以根据当前各边缘服务器的运行状况,在目标任务队列所对应的所有的边缘服务器中剔除掉故障的边缘服务器后剩余的边缘服务器。
步骤203:队列管理服务器将目标任务队列,发送至至少一个边缘服务器所属的区域服务器。
在实施中,队列管理服务器在确定目标任务队列所对应的至少一个边缘服务器后,可以将目标任务队列发送给这些边缘服务器所属的目标区域服务器。
目标区域服务器在接收到上述至少一个边缘服务器发送的任务获取请求后,可以根据该任务获取请求,将目标任务队列中的消息分发任务发送给这些边缘服务器。
步骤103:边缘服务器获取目标消息分发任务携带的应用程序属性信息,并将目标消息分发任务解析为应用管理指令,根据应用程序属性信息,确定边缘服务器管理的至少一个目标应用程序。
其中,应用程序属性信息是指应用程序共有的属性,可以是应用程序自身的属性,例如视频应用程序的视频属性,还可以是应用程序的设定属性,例如应用程序对应的网络接口属性。
在实施中,边缘服务器运行大量的应用程序,例如视频应用程序、内容存储应用程序,这些应用程序是“消息”的实际处理对象。边缘服务器在获取到目标消息分发任务后,将目标消息分发任务解析为目标应用程序能够识别与执行的具体的应用管理指令,例如上述的内容获取指令。在目标消息分发任务中还包含具体应用管理指令的应用程序的属性信息,边缘服务器根据应用程序的属性信息,能够确定管理那些具体应用管理指令所对应的目标应用程序。
步骤104:边缘服务器通过至少一个目标应用程序执行上述应用管理指令。
在实施中,边缘服务器在确定具体应用管理指令对应的目标应用程序后,可以通过这些目标应用程序执行相应的应用管理指令。
可选的,在边缘服务器将应用管理指令分发至至少一个目标应用程序之后,还包括更新消息分发任务的任务完成信息的处理过程,如图4所示,相应的处理可以如下:
步骤401:边缘服务器获取至少一个目标应用程序对应用管理指令的执行状态,生成目标消息分发任务的任务执行结果。
在实施中,应用管理指令的执行状态,可以包括执行成功状态与执行失败状态,边缘服务器在获取所有目标应用程序对应用管理指令的执行状态后,可以生成该目标消息分发任务的任务执行结果,任务执行结果可以包括应用管理指令的执行成功率等信息,之后,边缘服务器可以将生成的任务执行结果发送至所对应的目标区域服务器。
步骤402:目标区域服务器接收边缘服务器发送的任务执行结果,并将任务执行结果发送至队列管理服务器。
在实施中,目标区域服务器可以接收边缘服务器发送的任务执行结果,然后将上述任务执行结果发送至队列管理服务器。需要说明的是,目标区域服务器管理有多个边缘服务器,因此,目标区域服务器会接收其管理的所有边缘服务器发送的任务执行结果,目标区域服务器可以实时将这些任务执行结果发送至队列管理服务器,也可以按照预设发送周期,将预设发送周期内接收的任务执行结果发送至队列管理服务器。
步骤403:队列管理服务器根据接收的任务执行结果,更新目标消息分发任务的任务完成信息。
在实施中,队列管理服务器可以对从目标区域服务器处接收到的任务执行结果进行统计,例如统计各个边缘服务器的任务完成率,以及目标消息分发任务的总任务完成率,进而,队列管理服务器可以基于统计结果更新本地存储的目标消息分发任务的任务完成信息。
可选的,在边缘服务器将应用管理指令分发至至少一个目标应用程序之后,还包括当边缘服务器发生故障再恢复正常时,任务修复的处理过程,如图5所示,相应的处理可以如下:
步骤501:目标区域服务器接收边缘服务器的任务修复请求,任务修复请求中携带边缘服务器已处理的目标消息分发任务的最大任务编号。
在实施中,在工作状态下,边缘服务器可以按照任务编号从小到大的顺序,依次执行消息分发任务,同时记录已处理的目标消息分发任务的最大任务编号。可以理解,由于网络中断、资源耗尽导致的宕机等软硬件原因,边缘服务器有一定的几率会发生故障,在故障状态下,边缘服务器将会停止当前处理的所有消息分发任务。在故障排除后,边缘服务器则需要重新处理故障时停止的所有消息分发任务,故而,边缘服务器可以主动向目标区域服务器发送任务修复请求,并在任务修复请求中携带故障前已处理的消息分发任务的最大任务编号。
步骤502:目标区域服务器根据上述最大任务编号从队列管理服务器获取待修复任务,并将待修复任务发送至边缘服务器。
在实施中,待修复任务为任务编号大于边缘服务器已处理的目标消息分发任务的最大任务编号的消息分发任务。目标区域服务器在接收到边缘服务器发送的任务修复请求后,可以根据该任务修复请求中携带的上述最大任务编号,从队列管理服务器获取待修复任务,并将待修复任务重新发送给边缘服务器。这样,边缘服务器可以对故障前未处理完的消息分发任务继续进行处理,从而提高任务处理的成功率。
本发明实施例中,当检测到空闲的任务处理线程时,边缘服务器向边缘服务器所属的目标区域服务器发送任务获取请求;目标区域服务器确定边缘服务器对应的目标任务队列,向边缘服务器发送目标任务队列中的待处理的目标消息分发任务,其中,目标任务队列中的目标消息分发任务由目标区域服务器所属的调度服务器生成;边缘服务器获取目标消息分发任务的应用程序属性信息,并根据应用程序属性信息,确定边缘服务器管理的至少一个目标应用程序;边缘服务器将目标消息分发任务解析为应用管理指令,通过至少一个目标应用程序执行应用管理指令。这样,区域服务器中可以存储有调度服务器生成的消息分发任务所组成的任务队列,边缘服务器则可以从区域服务器处获取任务队列中的消息分发任务,无需调度服务器将消息分发任务逐个直接分配给边缘服务器,极大释放了调度服务器的系统资源,从而可以提高调度服务器的消息分发的效率。
基于相同的技术构思,本发明实施例还提供了一种消息分发的系统,如图6所示,该系统包括:
边缘服务器601,用于当检测到空闲的任务处理线程时,向所述边缘服务器601所属的目标区域服务器602发送任务获取请求;
目标区域服务器602,用于确定所述边缘服务器601对应的目标任务队列,向所述边缘服务器601发送所述目标任务队列中的待处理的目标消息分发任务,其中,所述目标任务队列中的目标消息分发任务由所述目标区域服务器602所属的调度服务器603生成;
所述边缘服务器601,还用于获取所述目标消息分发任务的应用程序属性信息,并根据所述应用程序属性信息,确定所述边缘服务器601管理的至少一个目标应用程序;
所述边缘服务器601,还用于将所述目标消息分发任务解析为应用管理指令,通过所述至少一个目标应用程序执行所述应用管理指令。
可选的,如图7所示,所述系统还包括队列管理服务器604,其中:
所述调度服务器603,用于根据接收到的消息分发请求生成所述目标消息分发任务,根据所述消息分发请求的请求参数,将所述目标消息分发任务添加至队列管理服务器604的目标任务队列中;
所述队列管理服务器604,用于根据已存储的边缘服务器601的属性信息,确定所述目标任务队列对应的至少一个所述边缘服务器601;
所述队列管理服务器604,还用于将所述目标任务队列,发送至所述至少一个所述边缘服务器601所属的所述目标区域服务器602。
可选的,所述消息分发请求的请求参数包括消息分发类型和消息分发范围;
所述调度服务器603,具体用于:
根据所述消息分发类型和所述消息分发范围,生成与所述目标消息分发任务对应的目标任务队列标识符;
判断所述队列管理服务器604中是否存在所述目标任务队列标识符对应的所述目标任务队列,如果存在,则将所述目标消息分发任务添加至所述目标任务队列;如果不存在,则指示所述队列管理服务器604建立与所述目标任务队列标识符对应的所述目标任务队列,将所述目标消息分发任务添加至所述目标任务队列。
可选的,所述调度服务器603,还用于:
在根据所述消息分发请求的请求参数,将所述目标消息分发任务添加至队列管理服务器604的目标任务队列之前,将生成的所述目标消息分发任务添加至所述调度服务器603的等待队列,检测所述目标消息分发任务是否符合预设运行条件;
当所述目标消息分发任务符合预设运行条件时,则将所述目标消息分发任务从所述等待队列取出,将所述目标消息分发任务添加至所述目标任务队列。
可选的,所述边缘服务器601,还用于获取所述至少一个目标应用程序对所述应用管理指令的执行状态,生成所述目标消息分发任务的任务执行结果;
所述目标区域服务器602,还用于接收所述边缘服务器601发送的所述任务执行结果,并将所述任务执行结果发送至所述队列管理服务器604;
所述队列管理服务器604,还用于根据接收的所述任务执行结果,更新所述目标消息分发任务的任务完成信息。
可选的,所述目标区域服务器602还用于:
接收所述边缘服务器601的任务修复请求,所述任务修复请求中携带所述边缘服务器601已处理的目标消息分发任务的最大任务编号;
根据所述最大任务编号从所述队列管理服务器604获取待修复任务,并发送至所述边缘服务器601。
本发明实施例中,当检测到空闲的任务处理线程时,边缘服务器向边缘服务器所属的目标区域服务器发送任务获取请求;目标区域服务器确定边缘服务器对应的目标任务队列,向边缘服务器发送目标任务队列中的待处理的目标消息分发任务,其中,目标任务队列中的目标消息分发任务由目标区域服务器所属的调度服务器生成;边缘服务器获取目标消息分发任务的应用程序属性信息,并根据应用程序属性信息,确定边缘服务器管理的至少一个目标应用程序;边缘服务器将目标消息分发任务解析为应用管理指令,通过至少一个目标应用程序执行应用管理指令。这样,区域服务器中可以存储有调度服务器生成的消息分发任务所组成的任务队列,边缘服务器则可以从区域服务器处获取任务队列中的消息分发任务,无需调度服务器将消息分发任务逐个直接分配给边缘服务器,极大释放了调度服务器的系统资源,从而可以提高调度服务器的消息分发的效率。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种消息分发的方法,其特征在于,所述方法包括:
当检测到空闲的任务处理线程时,边缘服务器向所述边缘服务器所属的目标区域服务器发送任务获取请求;
所述目标区域服务器确定所述边缘服务器对应的目标任务队列,向所述边缘服务器发送所述目标任务队列中的待处理的目标消息分发任务,其中,所述目标任务队列中的目标消息分发任务由所述目标区域服务器所属的调度服务器生成;
所述边缘服务器获取所述目标消息分发任务携带的应用程序属性信息,并根据所述应用程序属性信息,确定所述边缘服务器管理的至少一个目标应用程序;
所述边缘服务器将所述目标消息分发任务解析为应用管理指令,通过所述至少一个目标应用程序执行所述应用管理指令。
2.根据权利要求1所述的方法,其特征在于,所述当检测到空闲的任务处理线程时,边缘服务器向所述边缘服务器所属的目标区域服务器发送任务获取请求之前,还包括:
所述调度服务器基于接收到的消息分发请求生成所述目标消息分发任务,根据所述消息分发请求的请求参数,将所述目标消息分发任务添加至队列管理服务器的目标任务队列中;
所述队列管理服务器根据已存储的边缘服务器的属性信息,确定所述目标任务队列对应的至少一个所述边缘服务器;
所述队列管理服务器将所述目标任务队列,发送至所述至少一个所述边缘服务器所属的所述目标区域服务器。
3.根据权利要求2所述的方法,其特征在于,所述消息分发请求的请求参数包括消息分发类型和消息分发范围;
所述根据所述消息分发请求的请求参数,将所述目标消息分发任务添加至队列管理服务器的目标任务队列,包括:
所述调度服务器根据所述消息分发类型和所述消息分发范围,生成与所述目标消息分发任务对应的目标任务队列标识符;
所述调度服务器判断所述队列管理服务器中是否存在所述目标任务队列标识符对应的所述目标任务队列,如果存在,则将所述目标消息分发任务添加至所述目标任务队列;如果不存在,则指示所述队列管理服务器建立与所述目标任务队列标识符对应的所述目标任务队列,将所述目标消息分发任务添加至所述目标任务队列。
4.根据权利要求2所述的方法,其特征在于,所述根据所述消息分发请求的请求参数,将所述目标消息分发任务添加至队列管理服务器的目标任务队列之前,还包括:
所述调度服务器将生成的所述目标消息分发任务添加至所述调度服务器的等待队列,检测所述目标消息分发任务是否符合预设运行条件;
当所述目标消息分发任务符合预设运行条件时,则将所述目标消息分发任务从所述等待队列取出,将所述目标消息分发任务添加至所述目标任务队列。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述边缘服务器获取所述至少一个目标应用程序对所述应用管理指令的执行状态,生成所述目标消息分发任务的任务执行结果;
所述目标区域服务器接收所述边缘服务器发送的所述任务执行结果,并将所述任务执行结果发送至所述队列管理服务器;
所述队列管理服务器根据接收的所述任务执行结果,更新所述目标消息分发任务的任务完成信息。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述目标区域服务器接收所述边缘服务器的任务修复请求,所述任务修复请求中携带所述边缘服务器已处理的目标消息分发任务的最大任务编号;
所述目标区域服务器根据所述最大任务编号从所述队列管理服务器获取待修复任务,并将所述待修复任务发送至所述边缘服务器。
7.一种消息分发的系统,其特征在于,所述系统包括边缘服务器、区域服务器和调度服务器,其中:
所述边缘服务器,用于当检测到空闲的任务处理线程时,向所述边缘服务器所属的目标区域服务器发送任务获取请求;
所述目标区域服务器,用于确定所述边缘服务器对应的目标任务队列,向所述边缘服务器发送所述目标任务队列中的待处理的目标消息分发任务,其中,所述目标任务队列中的目标消息分发任务由所述目标区域服务器所属的调度服务器生成;
所述边缘服务器,还用于获取所述目标消息分发任务携带的应用程序属性信息,并根据所述应用程序属性信息,确定所述边缘服务器管理的至少一个目标应用程序;
所述边缘服务器,还用于将所述目标消息分发任务解析为应用管理指令,通过所述至少一个目标应用程序执行所述应用管理指令。
8.根据权利要求7所述的系统,其特征在于,所述系统还包括队列管理服务器,其中:
所述调度服务器,用于根据接收到的消息分发请求生成所述目标消息分发任务,根据所述消息分发请求的请求参数,将所述目标消息分发任务添加至队列管理服务器的目标任务队列中;
所述队列管理服务器,用于根据已存储的边缘服务器的属性信息,确定所述目标任务队列对应的至少一个所述边缘服务器;
所述队列管理服务器,还用于将所述目标任务队列,发送至所述至少一个所述边缘服务器所属的所述目标区域服务器。
9.根据权利要求8所述的系统,其特征在于,所述消息分发请求的请求参数包括消息分发类型和消息分发范围;
所述调度服务器,具体用于:
根据所述消息分发类型和所述消息分发范围,生成与所述目标消息分发任务对应的目标任务队列标识符;
判断所述队列管理服务器中是否存在所述目标任务队列标识符对应的所述目标任务队列,如果存在,则将所述目标消息分发任务添加至所述目标任务队列;如果不存在,则指示所述队列管理服务器建立与所述目标任务队列标识符对应的所述目标任务队列,将所述目标消息分发任务添加至所述目标任务队列。
10.根据权利要求8所述的系统,其特征在于,所述调度服务器,还用于:
在根据所述消息分发请求的请求参数,将所述目标消息分发任务添加至队列管理服务器的目标任务队列之前,将生成的所述目标消息分发任务添加至所述调度服务器的等待队列,检测所述目标消息分发任务是否符合预设运行条件;
当所述目标消息分发任务符合预设运行条件时,则将所述目标消息分发任务从所述等待队列取出,将所述目标消息分发任务添加至所述目标任务队列。
11.根据权利要求8所述的系统,其特征在于,所述边缘服务器,还用于获取所述至少一个目标应用程序对所述应用管理指令的执行状态,生成所述目标消息分发任务的任务执行结果;
所述目标区域服务器,还用于接收所述边缘服务器发送的所述任务执行结果,并将所述任务执行结果发送至所述队列管理服务器;
所述队列管理服务器,还用于根据接收的所述任务执行结果,更新所述目标消息分发任务的任务完成信息。
12.根据权利要求8所述的系统,其特征在于,所述目标区域服务器,还用于:
接收所述边缘服务器的任务修复请求,所述任务修复请求中携带所述边缘服务器已处理的目标消息分发任务的最大任务编号;
根据所述最大任务编号从所述队列管理服务器获取待修复任务,并将所述待修复任务发送至所述边缘服务器。
CN201711353336.6A 2017-12-15 2017-12-15 一种消息分发的方法和系统 Active CN109936593B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711353336.6A CN109936593B (zh) 2017-12-15 2017-12-15 一种消息分发的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711353336.6A CN109936593B (zh) 2017-12-15 2017-12-15 一种消息分发的方法和系统

Publications (2)

Publication Number Publication Date
CN109936593A CN109936593A (zh) 2019-06-25
CN109936593B true CN109936593B (zh) 2022-03-01

Family

ID=66980553

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711353336.6A Active CN109936593B (zh) 2017-12-15 2017-12-15 一种消息分发的方法和系统

Country Status (1)

Country Link
CN (1) CN109936593B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110659131B (zh) * 2019-08-15 2024-04-02 中国平安人寿保险股份有限公司 任务处理方法、电子装置、计算机设备及存储介质
CN111045813B (zh) * 2019-12-27 2024-01-02 京北方信息技术股份有限公司 一种任务分发系统及方法
CN111355801B (zh) * 2020-03-03 2022-07-22 袁爱民 一种远程人工智能通信业务办理系统及其控制方法
CN111464627B (zh) * 2020-03-31 2021-05-25 中国科学院自动化研究所 数据处理方法、边缘服务器、中心服务器及处理系统
CN111652681A (zh) * 2020-05-29 2020-09-11 平安医疗健康管理股份有限公司 一种单据处理方法、服务器及计算机可读存储介质
CN112015984A (zh) * 2020-08-25 2020-12-01 北京五八信息技术有限公司 一种商品信息分发方法、处理方法及装置
CN112738199B (zh) * 2020-12-25 2023-02-17 新东方教育科技集团有限公司 调度方法和调度系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0841825A2 (en) * 1996-09-13 1998-05-13 AT&T Corp. System and method for intergrated overload control and message Distribution
CN102541659A (zh) * 2011-12-30 2012-07-04 重庆新媒农信科技有限公司 一种服务器业务请求处理方法和装置
CN103856440A (zh) * 2012-11-29 2014-06-11 腾讯科技(深圳)有限公司 一种基于分布式总线的消息处理方法、服务器和系统
CN104834722A (zh) * 2015-05-12 2015-08-12 网宿科技股份有限公司 基于cdn的内容管理系统
CN104902340A (zh) * 2014-03-04 2015-09-09 中辉世纪传媒发展有限公司 一种对等节点全局负载均衡媒体内容分发方法及系统
CN106095546A (zh) * 2016-06-01 2016-11-09 深圳市永兴元科技有限公司 云计算平台的任务管理方法及装置
CN106790324A (zh) * 2015-11-20 2017-05-31 华为技术有限公司 内容分发方法、虚拟服务器管理方法、云平台和系统
CN106817408A (zh) * 2016-12-27 2017-06-09 中国银联股份有限公司 一种分布式服务器集群调度方法及装置
CN107273224A (zh) * 2017-06-15 2017-10-20 北京大生在线科技有限公司 基于订阅触发的消息队列控制系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101917385B (zh) * 2009-11-17 2013-05-01 新奥特(北京)视频技术有限公司 调度服务器及多媒体转码用的分布式系统
CN104796449B (zh) * 2014-01-22 2017-05-24 腾讯科技(深圳)有限公司 内容分发方法、装置及设备
CN104469392B (zh) * 2014-12-19 2018-04-20 北京奇艺世纪科技有限公司 一种视频文件存储方法及装置
US9998418B2 (en) * 2015-11-11 2018-06-12 International Business Machines Corporation Intelligent message queue management

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0841825A2 (en) * 1996-09-13 1998-05-13 AT&T Corp. System and method for intergrated overload control and message Distribution
CN102541659A (zh) * 2011-12-30 2012-07-04 重庆新媒农信科技有限公司 一种服务器业务请求处理方法和装置
CN103856440A (zh) * 2012-11-29 2014-06-11 腾讯科技(深圳)有限公司 一种基于分布式总线的消息处理方法、服务器和系统
CN104902340A (zh) * 2014-03-04 2015-09-09 中辉世纪传媒发展有限公司 一种对等节点全局负载均衡媒体内容分发方法及系统
CN104834722A (zh) * 2015-05-12 2015-08-12 网宿科技股份有限公司 基于cdn的内容管理系统
CN106790324A (zh) * 2015-11-20 2017-05-31 华为技术有限公司 内容分发方法、虚拟服务器管理方法、云平台和系统
CN106095546A (zh) * 2016-06-01 2016-11-09 深圳市永兴元科技有限公司 云计算平台的任务管理方法及装置
CN106817408A (zh) * 2016-12-27 2017-06-09 中国银联股份有限公司 一种分布式服务器集群调度方法及装置
CN107273224A (zh) * 2017-06-15 2017-10-20 北京大生在线科技有限公司 基于订阅触发的消息队列控制系统

Also Published As

Publication number Publication date
CN109936593A (zh) 2019-06-25

Similar Documents

Publication Publication Date Title
CN109936593B (zh) 一种消息分发的方法和系统
CN110222091B (zh) 一种海量数据实时统计分析方法
EP3591941B1 (en) Live video stream guiding method, ccl server and system
EP3125117B1 (en) Update management system and update management method
US20210176310A1 (en) Data synchronization method and system
US9047155B2 (en) Message-based installation management using message bus
CN104092719B (zh) 文件传输方法、装置及分布式集群文件系统
CN107992392B (zh) 一种用于云渲染系统的自动监控修复系统和方法
CN106453625B (zh) 信息同步方法及高可用性集群系统
CN105630589A (zh) 分布式流程调度系统及流程调度、执行方法
CN105373431A (zh) 一种计算机系统资源的管理方法及计算机资源管理系统
CN110677274A (zh) 一种基于事件的云网络服务调度方法及装置
CN104158707A (zh) 一种检测并处理集群脑裂的方法和装置
CN110300188B (zh) 数据传输系统、方法和设备
CN110795284B (zh) 一种数据恢复方法、装置、设备及可读存储介质
CN103312593B (zh) 一种消息分发系统及方法
CN108243222A (zh) 服务器网络架构方法及装置
CN108933966B (zh) 请求消息处理方法、装置及系统、终端和存储介质
CN109302324A (zh) 一种私有云监控预警方法及系统
CN106060123B (zh) 分布式数据系统的数据采集方法及分布式数据系统
CN111245887B (zh) Hbase连接动态保持方法、设备、存储介质及系统
CN108600004B (zh) 一种视频服务器配置管理方法及系统
CN112543354B (zh) 业务感知的分布式视频集群高效伸缩方法和系统
CN111966469B (zh) 一种集群虚拟机高可用方法及系统
CN110519397B (zh) 一种基于nginx的sip终端接入的负载均衡系统及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant