One of the zookeeper implementation and system load balance based method comprises the following steps: acquiring the task processor load information; call user initiated task request, gets the task information of the task request and stored in a task ready queue, task queue thread will according to the time sequence of the relaxation task in in order to output a mission; to perform tasks assigned to each processor task a maximum allocation probability, and calculate the load distribution scheme of each task is not balanced, the task allocation scheme of load balanced task allocation scheme and output optimal size. With this method, the task can be flexibly extended, and the task processing module supports periodic tasks and single tasks for all tasks.
【技术实现步骤摘要】
一种基于zookeeper实现负载均衡的方法及系统
本专利技术涉及计算机
,尤其涉及一种基于zookeeper实现负载均衡的方法及系统。
技术介绍
企业大数据量的快速激增要求对业务数据分块,进而由分布式系统对各块进行高可用的并行处理。在分布式数据处理系统中,通常有一些通过网络彼此互联且在数量上可以弹性扩展的节点,每个节点都采用相同的工作方式,他们通过一定的协商机制,在协商完毕后结合一致性哈希算法,能够自发地确定由自身处理的数据块,然后对这些数据块进行处理。对于分布式系统,需要一定的协调机制使系统在节点变动例如增加、删除一个或多个节点的情况下系统仍具有较高的可靠性。Zookeeper常被软件系统用于构建这种协调机制,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。申请号为201410154133.4的专利申请中公开一种处理数据的方法和装置,。该方法中,当前节点向zookeeper进行注册并触发对系统中所有其他节点的监听;当前节点在从注册完成时起,干预设时长内监听到全部其他节点对新增节点事件做出确认的事件的情况下,确定由自身来处理的数据块;当前节点在注册完成时起,经预设时长后仍未监听到至少一个其他节点对新增节点事件做出确认的事件情况下,判断zookeeper中是否保存该至少一个其他节点对新增节点事件做出确认信息,若是,则确定由自身来处理的数据块,否则重新向zookeeper进行注册。上述方法有助于避免在分布式数据处理系统中采用zookeeper进行任务调度时出现的数据被不同的节点重复处理的现象,但该方法不能实现各个节点数据均衡处理且容易出现单点 ...
【技术保护点】
一种基于zookeeper实现负载均衡的方法,其特征在于,包括如下步骤:S100:获取任务处理器负载信息素;S200:调用用户发起的任务请求,获取所述任务请求的任务信息并存入任务就绪队列,将任务就绪队列依照任务的时间松弛度从小到大的顺序依序输出待执行任务;S300:逐个将待执行任务分配给一最大分配概率的任务处理器,并计算每一任务分配方案的负载不均衡度,比较各任务分配方案的负载不均衡度大小并输出最优的任务分配方案。
【技术特征摘要】
1.一种基于zookeeper实现负载均衡的方法,其特征在于,包括如下步骤:S100:获取任务处理器负载信息素;S200:调用用户发起的任务请求,获取所述任务请求的任务信息并存入任务就绪队列,将任务就绪队列依照任务的时间松弛度从小到大的顺序依序输出待执行任务;S300:逐个将待执行任务分配给一最大分配概率的任务处理器,并计算每一任务分配方案的负载不均衡度,比较各任务分配方案的负载不均衡度大小并输出最优的任务分配方案。2.根据权利要求1所述的基于zookeeper实现负载均衡的方法,其特征在于:每一待执行任务分配给一最大分配概率的任务处理器,并计算每一任务分配方案的负载不均衡度,比较各任务分配方案的负载不均衡度大小并输出最优的任务分配方案,包括以下步骤:步骤A:初始化m个任务处理器负载信息素,根据式(1)计算所有任务处理器i(i=1,2,...,m)的初始负载信息素Load(i);Load(i)=|Uti(i)-Uti(i).avg|式(1)步骤B:在n个任务中,根据所选的第一个任务i在满足式(2)的情况下,按照式(3)计算可执行该任务的处理器j(处理器j满足式(2))的任务分配概率pij,选择其中最大概率的处理器完成对要执行的任务的的部署,选择下一个任务继续执行上述操作,直至任务全部执行完,得到一种分配方案;Ti<Sj式(2)步骤C:对所分配的任务处理器按照式(4)进行负载信息素Load’(i)更新(i为参与分配任务的处理器),并根据式(5)计算该方案的负载不均衡度H;Load'(i)=(1-ρ)Load(i)+ρΔLoad(i)步骤D:更换所选的第一个任务转至步骤B,直至不同的n种方案处理完毕;步骤E:比较n中方案的负载不均衡度大小,即比较H(i)的大小(i=1,2,...,n),选择最小不均衡度的方案作为最优的任务分配方案。步骤F:根据式(6)更新全部任务处理器的负载信息素Load’(i)(i=1,2,...,m)3.根据权利要求2所述的基于zookeeper实现负载均衡的方法,其特征在于,所述步骤B中,获取最大分配概率的任务处理器,包括如下步骤;建立满足条件Ti<Sj的任务处理器选择表,其中Ti表示任务i所需的资源,Sj表示任务处理器j当前持有的资源;计算最大分配概率的任务处理器:其中pij表示任务i分配到任务处理器j的概率,a表示信息素启发因子,b表示期望启发因子,A表示任务处理器选择表中对应的任务处理器集合,n表示任务需求资源与任务处理器持有资源的欧氏距离的倒数。4.根据权利要求2所述的基于zookeeper实现负载均衡的方法,其特征在于:每一待执行任务分配给一最大分配概率的任务处理器后还包括所述步骤C更新任务处理器的负载信息素,所述更新任务处理器的负载信息素的方法为:Load'(i)=(1-ρ)Load(i)+ρΔLoad(i)其中,Load'(i)表示更新的负载信息...
【专利技术属性】
技术研发人员:王琦,刘坤朋,郑杭,练军,
申请(专利权)人:福建六壬网安股份有限公司,
类型:发明
国别省市:福建,35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。