一种基于分布式调度机制的集群体系的制作方法

文档序号:17482223发布日期:2019-04-20 06:31阅读:112来源:国知局
一种基于分布式调度机制的集群体系的制作方法

本发明涉及互联网技术领域,具体涉及一种基于分布式调度机制的集群体系。



背景技术:

目前高性能集群服务器的体系结构主要采用基于分发器的调度方式,主要方法是用专门的分发器监控执行服务器的生存及负载情况,并将达到的用户连接请求分发到某一负载相对较轻的服务器。

大规模用户对信息服务器访问的特征表现为很强的突发性,即大量连接请求在短时间内到来,在这种情况下,现有的基于分发器的调度机制存在以下两方面的不足。

首先,重载时执行服务器有效利用率低,响应时间长。当今大多数操作系统使用了中断驱动的tcp/ip网络子系统,网络报文到达网络接口硬件产生的“硬中断”具有最高优先级,用户空间的服务进程的优先级最低。在大量用户连接请求到达时,分发器总是将其立即转发到后端负载相对较低的服务器。使得后端服务器进行频繁的上下文切换、终端的分发与处理,致使服务进程没有足够的cpu时间处理用户请求,服务响应时间变长,甚至随着系统负载的不断增大,下层网络协议栈的等待队列逐渐排满,服务器不得不抛弃后继的报文,用户请求长时间得不到响应而出现“活锁”状态。在这种情况下,即使分发器处理能力很强,吞吐率很高,整个集群系统的性能也不能得到应有的发挥,造成了资源的浪费和服务质量的下降。

其次,分发器的任务多、负载重。现有分发器主要担负着如下任务:检测服务器可用性;负载均衡;接收、分发用户请求并维护连接信息;与安全有关的任务等。其中重要的一项是负载均衡,当采用异构的服务器时,很难准确评估后端负载,避免负载倾斜。在基于请求内容的调度中,分发器或者要充当tcp网关,转发用户的请求和服务器的响应,或者要实现与用户的tcp连接状态向服务器的迁移,负担大大加重。各种类型的任务增加了分发器实现的复杂性,增大了系统开销,降低了连接请求分发的效率。



技术实现要素:

针对现有技术的缺陷和不足,本发明公开了一种基于分布式调度机制的集群体系,连接请求的分发受各执行服务器的控制,执行服务器在一定的容量规划下工作,从而保证了服务器资源的有效利用和合理的服务质量。

本发明通过以下技术方案予以实现:

一种基于分布式调度机制的集群体系,由服务器池、分发器、工作站、互联网、用户终端即上网用户构成,其中用户终端用于发送连接请求报文,并最终从服务器池中获取到相应的报文;分发器用于接收用户终端的连接请求报文,并将连接请求转发到服务器池即执行服务器的集群中;服务器池用于接收分发器转发的连接请求,并向用户终端反馈请求结果;工作站用于对分发器和服务器池进行配置和管理,确保分发器和服务器池中的服务器即执行服务器能正常工作,其调度机制的步骤为:

q1:用户提交连接请求报文:用户终端向接收分发器提交连接请求报文,当请求为http请求时,请求的内容是一个网站页面的图片或者文字;当请求为ftp请求时,请求的内容是一个文件;

q2:执行服务器池定期向分发器索取任务,索取的频率为1秒钟或者更短时长的频率,这个频率通过工作站进行预先设置,设置好以后,由执行服务器池中的服务器按照设置好的频率以轮询的方式向分发器索取任务,索取任务的数据包为udp协议的数据包,数据包通过执行服务器的网卡与分发器的网卡间的udp协议通讯完成任务的索取;其中分发器中的任务来自q1步骤中客户终端向分发器提交的连接请求;;

q3:分发器将请求报文分发给服务器,分发器在接收到用户终端的连接请求报文,以及在接收到执行服务器发送的索取任务的指令后,向执行服务器池中的服务器按照相同的顺序分发报文;

q4:服务器处理用户请求并返回结果,执行服务器在接收到任务(用户终端的连接请求)以后,如果服务器中保存有用户终端所请求的内容,则向用户终端返回其所请求的内容,如图片、页面、音视频文件、下载包等,用户终端的显示器上显示相关的内容;如果服务器中没有用户终端所请求的内容,则向用户终端返回无相关内容的提示,如在用户终端的显示器上页面无法打开灯提示。

在上述技术方案中,在q2步骤中轮询方式具体是指,依照一定的顺序依次向分发器索取指令,按照这种方式,执行服务器池中的服务器将均等的机会向分发器索取的指令。

在上述技术方案中,在q3步骤具体是指,服务器池中的执行服务器a首先向分发器索取任务,此时分发器正好收到用户终端的连接请求指令1,于是分发器将连接请求指令1分发给执行服务器a;1秒钟以后执行服务器b按照次序向分发器索取任务,分发器将连接请求指令2分到到执行服务器b。这种方式的创新点是执行服务器按照轮询的方式向分发器索取任务,而这种索取任务的方式是工作站按照一定的频率以及每台执行服务器的状态执行的,一方面考虑到了每台执行服务器的状态,如果某台执行服务器出现了故障,这台服务器将不能向分发器索取任务,这样就保证了服务器池的整体可用性;另一方面通过轮询的方式,保证了每台健康的执行服务器的均能以平等的机会向分发器索取任务,充分发挥了服务器池中的每台服务器的效能。

作为上述技术方案的优选,本发明涉及的一种基于分布式调度机制的集群体系设有二级分发器,分发器基于网络ip地址在网络拓扑结构中的最前端,接收来自用户终端的连接请求报文,

(此处网络ip地址是网络中每台服务器对应的位置,用户终端只有根据dns解析出ip地址才能找到相应的服务器。)

集群体系使用传统请求分发策略的第一级分发器,在其后使用基于分布式请求分发策略的第二级分发器,第一级和第二级分发器两者之间的关系是处理流程的先后顺序,即在本方案中先执行第一级分发器,然后再执行第二级分发器,即用户终端的访问请求通过第一级分发器首先被分发到分发器,再通过第二级分发器分发到执行服务器,执行服务器以轮询的方式轮流执行任务;

在上述技术方案中,传统请求分发策略是根据dns的功能,解析出域名与ip地址的对应关系,比如说,如果有一个网站域名www.a.com,其对应的ip地址为1.1.1.1,用户终端需要访问www.a.com这个网站,用户终端在浏览器中输入网站域名,通过dns的解析功能,将用户终端的访问请求解析到1.1.1.1这个ip地址所对应的服务器上。以本技术中提到的访问为例,根据传统请求分发策略,用户终端的访问请求将被直接解析到执行服务器。

在上述技术方案中,基于分布式请求分发策略是指,用户终端的访问请求将被解析到分发器,而这种改变的实现通过调整dns解析的策略即可,即把dns解析由执行服务器的ip地址改为分发器的ip地址即可,然后再根据上面q2与q3所提到的分发器与执行服务器之间的任务索取与任务分发过程,形成基于分布式请求分发策略。

作为上述技术方案的优选,本发明涉及的一种基于分布式调度机制的集群体系还有若干监控、管理的节点,监控、管理的节点为工作站,工作站的作用是分发器以及执行服务器监控和管理,监控的作用是监控每台服务器的工作状态,当其中某台服务器出现故障时,将服务调度到工作正常的服务器;管理的作用是对各种参数进行配置,如配置执行服务器向分发器索取任务的频率等,工作站通过网卡之间的数据传输分别完成与分发器、执行服务器之间的通讯。

作为上述技术方案的优选,单个的分发器始终作为集群系统的单一故障点,采用分发器备份机制和实时监控机制,当主分发器出现故障时,实时将服务切换至备用分发器。

作为上述技术方案的优选,服务器池的管理由工作站来实现,通过工作站配置策略设置执行服务器向分发器“索取任务”的频率;工作站与执行服务器通过网口之间的数据通讯实现配置策略在执行服务器生效。

作为上述技术方案的优选,通过工作站进行配置,视频服务请求的响应由执行服务器a实现,图片服务请求的响应由执行服务器b实现;又比如,某省用户的请求由执行服务器a实现,另外一个省的用户请求由执行服务器b实现,注:根据与用户来源ip地址可以区分出该用户来自哪个省份,由此可以做出相应的判断,从而实现按照服务提供者制定的策略针对不同类型的用户、不同类型的请求等因素进行区分服务。

作为上述技术方案的优选,当有新的执行服务器(节点)加入到集群时,只要在工作站中输入该节点的ip地址并应用生效即可;如果需要将某台执行服务器从集群中退出,只要在工作站中删除或者暂停该节点的ip地址并应用生效即可。该方法可同样应用于分发器的动态加入与退出,以此实现服务器节点的动态加入与退出。

本发明的有益效果为:

本发明涉及到的一种基于分布式调度机制的集群体系,消除了“活锁”现象,服务器在一定的服务容量规划下工作,既保证了服务器资源的充分利用,又考虑了用户对服务质量的需求;提高了工作效率,对于现有技术中对服务器的心跳检测和负载评估、连接请求的分发决策等传统的负载均衡工作在本项发明中不再需要,操作简单,易于实现,便于广泛推广和普及。通过对服务器池的管理,可以按照服务提供者制定的策略针对不同类型的用户、不同类型的请求等因素进行区分服务,为服务者实现灵活的服务策略提供了基础;消除了分发器与服务器心跳检测间隔内某一服务器发生故障时的不可用状态;服务器节点的动态加入与退出得到了自然的实现,在上述操作过程中,管理员并不需要干预其他正常工作的执行服务器或分发器。

附图说明

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

图1是本发明的一种基于分布式调度机制的集群体系的整体结构示意图;

图2是本发明实施例的一种基于分布式调度机制的集群体系的调度机制的结构示意图。

图3是本发明实施例的一种基于分布式调度机制的集群体系的调度机制的任务分级结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了保证系统结构的透明性,集群采用统一的分发器执行报文转发工作;后面是多个执行服务器,响应用户请求并实施连接请求的分布式调度;服务器后方可以是现有的一切存储设备;此外,整个集群还需要有若干监控、管理和内容制作发布的节点。单个的分发器始终是集群系统的单一故障点,采用备份分发器监控并实时切换发生故障的主分发器,保证系统的高可用性。为了扩大集群系统规模,可采取二级调度,在最前端使用基于网络地址,使用传统请求分发策略的第一级分发器,在其后使用基于分布式请求分发策略的第二级分发器。

实施例

在图1中,心跳线是一根监听线,用户备用分发器监听主分发器的工作状态,通常由备用分发器以一定的频率(如5分钟)向主分发器发送数据包,如果备用分发器能够接受到主分发器的应答,则表明主分发器工作正常,如果备用分发器没有接收到主分发器的应答,则说明主分发器工作不正常,则由备用分发器接管主分发器的工作。

工作站的作用是用于对分发器及执行服务器进行管理与配置,这是体系能正常工作的管理保障。

工作流程如下:

1、1表明的是用户终端的连接请求通过dns解析通过互联网解析到分发器,分发器接收来自用户终端的请求。

2、2表示执行服务器以轮询的方式及一定的频率(如1秒钟)向分发器索取任务。

3、3表示分发器根据执行服务器的索取任务,向执行服务器转发用户终端的访问请求。

4、执行服务器根据用户终端的访问请求,将用户终端反馈其所请求的内容。如有则显示相应的结果,如无相应内容,则向用户终端相应的提示信息。

如图1-2所示,我们称服务器上负责向分发器发出承担任务请求的部分为任务请求管理模块,服务器上的服务器进程对用户在一次连接里提供的服务称为任务。

(1)工作方式

用户发出的连接请求由分发器接收并放入任务等待池;服务器上的服务进程准备为新的请求服务,触发任务请求管理模块代其向分发器请求任务;分发器接收任务请求管理模块承担任务的请求,按一定的策略将任务分发到相应的服务器,并在任务连接池中建立对应的状态记录项;新的任务达到服务器,交由服务进程进行处理;同一连接的用户后续请求报文通过查询任务连接池相应的记录项转发到相应的执行服务器;执行服务器的处理结果直接返回给用户。

(2)任务等待池的组织

如图3所示,任务按一定的标准(如用户优先级、请求内容的优先级)分为若干级别;某个级别的任务再按照一定的标准(如请求内容的分类)分为若干类,每类任务按到达时间先后排列。

(3)对任务等待池的操作

主要是将任务插入队列尾部和从队列头部提取任务。每个队列提供两把互斥锁,一把用于插入线程之间的互斥(插入锁),另一把用于插入线程与提取线程之间、提取线程之间的互斥(提取锁)。算法如下:

提取算法:if找不到任务对应的队列;

动态扩展与配置完毕

获得提取锁;

确定所提取任务结合的起始位置;

if对位任务∈提取的任务集合

获得插入锁;

提取任务;

if(队尾任务∈提取的任务集合)

释放插入锁;

释放提取锁完毕

插入算法:if找不到任务对应的队列;

向用户报错完毕

获得插入锁;

插入任务;

释放插入锁完毕

任务队列的查找算法实现了任务池的组织和管理策略,允许动态配置与扩展任务等待池,而不用在分发器上手工配置,减少了对分发器的干扰。

(4)任务请求管理模块的工作方式

任务请求管理模块被服务进程触发后向分发器发出承担任务请求,请求报文包含请求任务数量、服务器ip地址等基本信息,根据调度策略的不同,还可以包含服务器所服务的内容等信息。在有服务进程处于工作状态时,任务请求管理模块被动响应服务进程的请求,当所有服务进程空闲则采用定时查询方式,保证了服务器端资源的充分利用。任务请求管理模块在分发器满足了当次任务请求后再请求下一批任务,自动适应分发器的负载变化,减少网络操作的开销,尽量减少了分发器端的负荷。除请求任务外,任务请求管理模块还可以用来完成tcp迁移等重要工作。

总结:本发明通过分析现有集群服务器的连接请求调度机制,提出了一种全新的分布式调度机制及相应的集群体系结构。摒弃了传统的负载均衡工作,消除了高负载下服务器的“活锁”现象,提高了服务器的有效利用率,保证服务器可预测的响应时间,并且为实现区分服务提供了基础。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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