本申请提供一种任务请求调度集群。该集群包括:API网关、M个对等的Actor节点;所述API网关与每个所述Actor节点连接,所述M大于或等于2;所述API网关,用于接收来自客户端的任务请求,并将任务请求分发至集群中的Actor节点;所述Actor节点,用于通过邮箱接收所述API网关发送的任务请求,串行执行所述邮箱中存储的任务请求,并将任务请求的处理结果通过所述API网关返回至所述客户端。本申请提供的任务请求调度集群,在保证集群高可用性的同时解决了现有技术中采用共享内存并发计算模型因计算过程中频繁加解锁导致的计算性能差的问题。中频繁加解锁导致的计算性能差的问题。中频繁加解锁导致的计算性能差的问题。
【技术实现步骤摘要】
任务请求调度集群
[0001]本申请涉及计算技术,尤其涉及一种任务请求调度集群。
技术介绍
[0002]并发计算是一种程序计算的形式。通过并发计算可以实现将一个计算任务分成多个子任务,并同时对这几个子任务进行计算,可以提高计算效率。现有技术中,常用共享内存并发计算模型实现并发计算,该模型通过多线程并发完成计算任务。多线程在共用同一资源时,为避免并发冲突,会频繁对使用的资源进行上锁,使用结束后再对该资源解锁,供其他线程使用。这种频发的加解锁将严重影响计算性能。
[0003]Actor模型是一个并发计算的概念模型,它定义了执行并发计算的计算单元,即Actor,的计算及交互规则。将基于Actor模型构建的任务请求调度集群应用于并发计算场景,可以解决上述频繁加解锁导致的计算性能差的问题。
[0004]然而,上述任务请求调度集群在执行任务请求过程中存在可用性低的问题。
技术实现思路
[0005]本申请提供一种任务请求调度集群,用以在保证集群高可用性的同时解决现有技术中采用共享内存并发内存模型进行计算时由于频繁价结果导致的计算性能差的问题。
[0006]第一方面,本申请提供一种任务请求调度集群,所述任务请求调度集群,包括:API网关、M个对等的Actor节点;所述API网关与每个所述Actor节点连接,所述M大于或等于2;所述API网关未部署Actor节点;
[0007]所述API网关,用于接收来自客户端的任务请求,并将任务请求分发至集群中的Actor节点;
[0008]所述Actor节点,用于通过邮箱接收所述API网关发送的任务请求,串行执行所述邮箱中存储的任务请求,并将任务请求的处理结果通过所述API网关返回至所述客户端。
[0009]可选的,所述任务请求调度集群还包括:持久化存储装置;
[0010]所述Actor节点,还用于将通过所述邮箱接收到的任务请求进行备份,并将备份保存至所述持久化存储装置中。
[0011]可选的,所述任务请求调度集群,还包括:服务注册中心;所述服务注册中心与每个所述Actor节点连接;
[0012]所述Actor节点,用于在启动后,向所述服务注册中心发送注册请求,以注册到服务注册中心;
[0013]所述服务注册中心,用于监控所述Actor节点的在线状态,并在所述Actor节点离线时,剔除所述Actor节点;
[0014]所述API网关,具体用于从所述服务注册中心获取可用的Actor节点,并从可用的Actor节点中选择Actor节点发送任务请求。
[0015]可选的,所述任务请求调度集群,还包括:资源监控模块;所述资源监控模块与所
述API网关、每个所述Actor节点连接;
[0016]所述资源监控模块,用于监控集群中各Actor节点的资源使用情况。
[0017]可选的,所述任务调度集群,还包括:节点控制管理模块;所述节点控制管理模块与所述资源监控模块、每个所述Actor节点连接;
[0018]所述资源监控模块,还用于根据获取的集群中各Actor节点的资源占用率,通过所述节点控制管理模块调整Actor节点的数量。
[0019]可选的,所述节点控制管理模块与所述API网关连接;
[0020]所述API网关,还用于根据当前的任务请求数,以及,任务请求数与Actor节点数量的映射关系,通过所述节点控制管理模块调整Actor节点的数量。
[0021]可选的,所述服务注册中心,还用于在监控到所述Actor节点异常离线时,向所述节点控制管理模块发送Actor节点的创建请求;
[0022]所述节点控制管理模块,还用于根据所述创建请求,创建新的Actor节点。
[0023]可选的,所述Actor节点,具体用于根据待执行的任务请求的计算量,对任务请求进行分片,并创建N个Actor子节点实例,以通过所述N个Actor子节点实例执行该任务请求,所述N为大于或等于1的整数,所述N与所述任务请求分片数量正相关。
[0024]可选的,所述API网关,具体用于:按照预设的负载均衡策略,向集群中的Actor节点的邮箱分发任务请求;
[0025]所述负载策略包括下述至少一项:
[0026]轮询分发任务请求;随机分发任务请求;根据发送任务请求的客户端的地址与Actor节点的映射关系分发任务请求;根据各Actor节点的权重选择Actor节点分发任务请求;所述权重的大小与Actor节点的任务请求处理数量正相关;根据各Actor节点的任务请求处理频率选择Actor节点分发任务请求;根据各Actor节点的资源占用率选择Actor节点分发任务请求。
[0027]可选的,所述Actor节点,还用于根据消息总线发送的新jar包引入通知,从制品仓库下载所述新jar包,并根据所述新jar包进行热更新。
[0028]本申请基于Actor模型构建任务请求调度集群,该任务请求调度集群可以在保证高可用性的同时,解决现有技术中并行计算场景中采用共享内存并行计算模型时由于频繁加解锁导致的计算性能差的问题。
附图说明
[0029]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
[0030]图1为现有技术提供的一种Actor模型示意图;
[0031]图2为现有技术提供的一种任务请求调度集群的架构示意图;
[0032]图3为本申请提供的一种任务请求调度集群的架构示意图;
[0033]图4为本申请提供的一种任务请求调度集群的架构示意图
[0034]图5为本申请提供的一种Actor节点内部的架构示意图;
[0035]图6为本申请提供的一种Actor节点的更新流程示意图。
[0036]通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图
和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
[0037]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0038]Actor模型是一个并发计算的概念模型,定义了执行并发计算的计算单元,即Actor,的计算及交互规则。图1为现有技术提供的一种Actor模型示意图,如图1所示,多个Actor可以并发计算以完成任务请求。消息(Message)是携带数据的载体,例如可以携带任务请求,其可以被发送到任意Actor以实现Actor的通信。每个Actor都有一个邮箱(MailBox),用来按照接收时间的先后按顺序存储消息。每个Actor按照邮箱中接收到的消息的顺本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种任务请求调度集群,其特征在于,所述任务请求调度集群,包括:API网关、M个对等的Actor节点;所述API网关与每个所述Actor节点连接,所述M大于或等于2;所述API网关未部署Actor节点;所述API网关,用于接收来自客户端的任务请求,并将任务请求分发至集群中的Actor节点;所述Actor节点,用于通过邮箱接收所述API网关发送的任务请求,串行执行所述邮箱中存储的任务请求,并将任务请求的处理结果通过所述API网关返回至所述客户端。2.根据权利要求1所述的任务请求调度集群,其特征在于,所述任务请求调度集群还包括:持久化存储装置;所述Actor节点,还用于将通过所述邮箱接收到的任务请求进行备份,并将备份保存至所述持久化存储装置中。3.根据权利要求2所述的任务请求调度集群,其特征在于,所述任务请求调度集群,还包括:服务注册中心;所述服务注册中心与每个所述Actor节点连接;所述Actor节点,用于在启动后,向所述服务注册中心发送注册请求,以注册到服务注册中心;所述服务注册中心,用于监控所述Actor节点的在线状态,并在所述Actor节点离线时,剔除所述Actor节点;所述API网关,具体用于从所述服务注册中心获取可用的Actor节点,并从可用的Actor节点中选择Actor节点发送任务请求。4.根据权利要求3所述的任务请求调度集群,其特征在于,所述任务请求调度集群,还包括:资源监控模块;所述资源监控模块与所述API网关、每个所述Actor节点连接;所述资源监控模块,用于监控集群中各Actor节点的资源使用情况。5.根据权利要求4所述的任务请求调度集群,其特征在于,所述任务调度集群,还包括:节点控制管理模块;所述节点控制管理模块与所述资源监控模块、每个所述Actor节点连接;所述资源监控模块,还用于根据获取的集群中各Actor节点的资源占用率,通过所述节点控制管理模块调整Actor节...
【专利技术属性】
技术研发人员:赵煜,王浏明,李欣,
申请(专利权)人:中国联合网络通信集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。