[发明专利]用户任务处理方法及应用服务器在审
申请号: | 201710987303.0 | 申请日: | 2017-10-20 |
公开(公告)号: | CN107797865A | 公开(公告)日: | 2018-03-13 |
发明(设计)人: | 王佳琪 | 申请(专利权)人: | 华为软件技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京同立钧成知识产权代理有限公司11205 | 代理人: | 王思楠,刘芳 |
地址: | 210012 江苏省南京*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用户 任务 处理 方法 应用 服务器 | ||
技术领域
本申请涉及分布式组网领域,尤其涉及一种用户任务处理方法及应用服务器。
背景技术
在云化系统的大背景下,分布式组网和部署方案是核心的技术点之一,这种架构组网有弹性伸缩好、稳定性高、管理灵活等优势,因而应用较为广泛。目前的分布式组网系统中,主要包括:应用服务器、终端以及协调服务中心(ZooKeeper)。其中,ZooKeeper负责管理所有的应用服务器,以及对应用服务器的运行状态进行监听,当系统中添加了新的应用服务器时,新的应用服务器都会到ZooKeeper进行注册。终端主要指安装了应用客户端(应用程序,application)的终端,用户可以通过终端创建任务,由终端将任务发送到应用服务器。应用服务器用于执行终端发送的任务。
在分布式组网系统中,需要考虑将终端创建的任务分配到应用服务器执行,而且分配任务要考虑到系统中的应用服务器是弹性可变的,即可能新增或删除。现有技术中,采用一致性哈希(Hash)环的方式为应用服务器分配任务。具体地,每添加一个应用服务器,就将该应用服务器以及该应用服务器的Hash值注册到ZooKeeper,相应地,删除应用服务器后ZooKeeper也会删除该应用服务器的Hash值。每个应用服务器都在Hash环上占据一个点。当终端创建一个新任务后,也会将该任务的Hash值添加到Hash环上作为一个点,并以这个任务的Hash值为起点在Hash环上查找应用服务器的点,遇到的第一个应用服务器的点就将任务交给这个应用服务器处理。现有技术中为了负载均衡,在Hash环上为每个应用服务器分配一个或多个虚拟节点,以避免Hash环上的点分布不均匀。
但是,采用现有技术为应用服务器分配任务,还是会造成个别应用服务器负载过大的问题。
发明内容
本申请提供一种用户任务处理方法及应用服务器,用于解决任务分配导致的应用服务器负载过大的问题。
第一方面,本申请提供一种用户任务处理方法,所述方法应用于任务处理系统,所述系统包括M个应用服务器,M为大于1的整数,所述方法包括:
应用服务器获取所述应用服务器的待执行任务数量;
所述应用服务器在所述待执行任务数量小于第一预设阈值时,从任务存储介质中认领N个任务,其中,N为大于0的整数,认领N个任务后所述应用服务器的待执行任务数量小于或等于第二预设阈值,所述第二预设阈值大于所述第一预设阈值。
在一种可能的设计中,所述应用服务器在所述待执行任务数量小于第一预设阈值时,从任务存储介质中认领N个任务,包括:
所述应用服务器根据一致性哈希算法获取哈希环,所述哈希环上包括:所述M个应用服务器的哈希值节点、以及所有未认领任务的哈希值节点;
所述应用服务器根据预设规则在所述哈希环上确定所述N个任务的哈希值节点;
所述应用服务器根据所述N个任务的哈希值节点,从任务存储介质中获取所述N个任务。
在一种可能的设计中,所述应用服务器根据预设规则在所述哈希环上确定所述N个任务的哈希值节点,包括:
所述应用服务器根据预设规则在所述哈希环的目标区域上确定所述N个任务的哈希值节点。
在一种可能的设计中,所述哈希环还包括:所述应用服务器的虚拟节点;
所述应用服务器根据预设规则在所述哈希环的目标区域上确定所述N个任务之前,还包括:
所述应用服务器在所述哈希环上确定所述目标区域,所述目标区域中所述虚拟节点和所述M个应用服务器的哈希值节点均匀分布。
在一种可能的设计中,所述应用服务器根据预设规则在所述哈希环上确定所述N个任务的哈希值节点,包括:
所述应用服务器以所述应用服务器的哈希值节点为起点,按照预设方向在所述哈希环上查找到下一应用服务器的哈希值节点;
所述应用服务器在所述预设方向上,获取所述应用服务器的哈希值节点与所述下一应用服务器的哈希值节点之间所有任务的哈希值节点;
所述应用服务器在所述应用服务器的哈希值节点与所述下一应用服务器的哈希值节点之间所有任务的哈希值节点中,确定所述N个任务的哈希值节点。
第二方面,本申请提供一种应用服务器,该应用服务器应用于任务处理系统,所述系统包括M个应用服务器,M为大于1的整数,该应用服务器包括:
获取模块,用于获取所述应用服务器的待执行任务数量;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为软件技术有限公司,未经华为软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710987303.0/2.html,转载请声明来源钻瓜专利网。