分布式集群资源控制器的设计与实现
发布时间:2022-01-27 06:37
随着互联网的快速发展,互联网在为用户提供服务的同时也在经受巨大的挑战。传统的单一服务器无法处理大量的并发业务,计算机集群应运而生。计算机集群是分布式系统的一个重要分类,被广泛地应用在高性能计算中,它缓解了服务器面对高并发业务的压力。但是单靠增加服务器的数量也会出现性能瓶颈,传统的负载均衡算法无法综合的衡量集群的性能,异构集群中每台服务器的处理能力都不相同,如何处理高并发下的大量读写数据,这些问题都对集群的处理能力提出了更高的要求。因此,如何提高集群在高并发下的处理能力是本文研究的课题。本文设计了一个基于资源控制的集群系统,并详细介绍了系统的理论基础、设计思路、实现与测试。以下是本文的具体工作:1)设计和实现一个分布式系统。负载均衡节点负责实现对客户端业务的负载均衡,服务节点实现对大量客户端请求的峰值处理。2)动态反馈负载均衡策略。针对传统的负载均衡算法无法综合评价节点负载情况的问题,特别是异构集群这种复杂的情况,基于此本文设计并实现了一种基于动态反馈的负载均衡算法DAL。为了了解系统的动态负载情况,服务节点周期性地收集自身的负载指标并对其进行权值量化,这些指标包括CPU、内存等,其次结...
【文章来源】:电子科技大学四川省211工程院校985工程院校教育部直属院校
【文章页数】:77 页
【学位级别】:硕士
【部分图文】:
消息中间件系统层次图
电子科技大学硕士学位论文18图4-1通信数据格式type:消息类别(string),默认为req。id:消息id(string)。如果是消息是push类型则不会有此字段。name:消息名称(string),将对应系统的业务和功能。同一个消息的请求和回复的名称应该一致。code:回复码,resp消息的专有,用来标识请求的结果,成功为0,其他为失败。body:消息体,和消息名称有关,可以是数组,字符型,对象等。在应用层,系统将交互的信息分为消息头和消息体。消息头大小为20字节,消息体长度不定,具体设计格式如下图4-2所示:图4-2消息message格式cmd:消息标志,uint32_t,绑定消息名称(name),用来表示消息的业务类型,节点和业务模块需要提交协商好交互协议。length:消息体req长度,不包括消息标识和消息本字段的长度,uint32_t。error:错误码,uint32_t,默认为0,在头文件error.h里定义错误及错误码。para1、para2:可选自定义参数,可用于功能扩展,uint32_t,消息id被记录在参数里。req:消息体,请求的具体数据,采用protocolbuffer协议进行序列化方便消息传输。网络通信为了应对高并发的环境,需要选择合适的网络框架。系统采用Reactor机制的事件驱动模型以及Epoll多路复用技术来管理I/O事件,通过触发Agent来监听和读取来自客户端的连接请求,服务器端采用多线程机制来处理任务。Epoll机制实cmdlengtherrorpara1para2req消息头req消息体
第四章分布式集群资源控制器的设计与实现21图4-5定时器模块实现类图Timer是对定时器的封装,超时处理函数、取消定时器和设置超时时间间隔功能在EventLoop里声明,每个定时器都有一个编号。TimerList是一个Timer类型的容器,用来管理全部的定时器,它的成员timerfd被注册在epoll监听事件中,如果定时器超时timerfd变为可读事件,间接调用EventLoop里的超时处理函数,多个定时器通过timerfd触发,同时在TimerList里超时的定时器会有序排列等待handle_read函数调用处理。4.2节点管理客户端ClientClient模块是系统提给上层应用的API接口,它是用户和服务端的中介,它为用户提供了业务支持,让用户可以通过WEB界面发出指令,向负载均衡节点发起请求获取需要连接的服务节点,与服务节点建立连接,并转发客户端的数据。它的具体设计如下图4-6所示。
【参考文献】:
期刊论文
[1]基于动态指数平滑预测的负载均衡算法[J]. 孟利民,徐杨. 浙江工业大学学报. 2016(04)
[2]基于CPU和内存利用率的负载均衡算法的研究[J]. 杨明极,王鹤,赵加凤. 科技通报. 2016(04)
[3]基于负载权值的负载均衡算法[J]. 张玉芳,魏钦磊,赵膺. 计算机应用研究. 2012(12)
[4]基于预测机制的自适应负载均衡算法[J]. 石磊,何增辉. 计算机应用. 2010(07)
[5]Web集群系统的负载均衡算法[J]. 王春娟,董丽丽,贾丽. 计算机工程. 2010(02)
[6]业务需求驱动下的负载均衡技术研究与应用[J]. 蒋鸿城,洪建光,谢知寒. 电力信息化. 2008(S1)
[7]集群系统中的动态反馈负载均衡策略[J]. 买京京,龚红艳,宋纯贺. 计算机工程. 2008(16)
[8]消息中间件综述[J]. 徐晶,许炜. 计算机工程. 2005(16)
本文编号:3611964
【文章来源】:电子科技大学四川省211工程院校985工程院校教育部直属院校
【文章页数】:77 页
【学位级别】:硕士
【部分图文】:
消息中间件系统层次图
电子科技大学硕士学位论文18图4-1通信数据格式type:消息类别(string),默认为req。id:消息id(string)。如果是消息是push类型则不会有此字段。name:消息名称(string),将对应系统的业务和功能。同一个消息的请求和回复的名称应该一致。code:回复码,resp消息的专有,用来标识请求的结果,成功为0,其他为失败。body:消息体,和消息名称有关,可以是数组,字符型,对象等。在应用层,系统将交互的信息分为消息头和消息体。消息头大小为20字节,消息体长度不定,具体设计格式如下图4-2所示:图4-2消息message格式cmd:消息标志,uint32_t,绑定消息名称(name),用来表示消息的业务类型,节点和业务模块需要提交协商好交互协议。length:消息体req长度,不包括消息标识和消息本字段的长度,uint32_t。error:错误码,uint32_t,默认为0,在头文件error.h里定义错误及错误码。para1、para2:可选自定义参数,可用于功能扩展,uint32_t,消息id被记录在参数里。req:消息体,请求的具体数据,采用protocolbuffer协议进行序列化方便消息传输。网络通信为了应对高并发的环境,需要选择合适的网络框架。系统采用Reactor机制的事件驱动模型以及Epoll多路复用技术来管理I/O事件,通过触发Agent来监听和读取来自客户端的连接请求,服务器端采用多线程机制来处理任务。Epoll机制实cmdlengtherrorpara1para2req消息头req消息体
第四章分布式集群资源控制器的设计与实现21图4-5定时器模块实现类图Timer是对定时器的封装,超时处理函数、取消定时器和设置超时时间间隔功能在EventLoop里声明,每个定时器都有一个编号。TimerList是一个Timer类型的容器,用来管理全部的定时器,它的成员timerfd被注册在epoll监听事件中,如果定时器超时timerfd变为可读事件,间接调用EventLoop里的超时处理函数,多个定时器通过timerfd触发,同时在TimerList里超时的定时器会有序排列等待handle_read函数调用处理。4.2节点管理客户端ClientClient模块是系统提给上层应用的API接口,它是用户和服务端的中介,它为用户提供了业务支持,让用户可以通过WEB界面发出指令,向负载均衡节点发起请求获取需要连接的服务节点,与服务节点建立连接,并转发客户端的数据。它的具体设计如下图4-6所示。
【参考文献】:
期刊论文
[1]基于动态指数平滑预测的负载均衡算法[J]. 孟利民,徐杨. 浙江工业大学学报. 2016(04)
[2]基于CPU和内存利用率的负载均衡算法的研究[J]. 杨明极,王鹤,赵加凤. 科技通报. 2016(04)
[3]基于负载权值的负载均衡算法[J]. 张玉芳,魏钦磊,赵膺. 计算机应用研究. 2012(12)
[4]基于预测机制的自适应负载均衡算法[J]. 石磊,何增辉. 计算机应用. 2010(07)
[5]Web集群系统的负载均衡算法[J]. 王春娟,董丽丽,贾丽. 计算机工程. 2010(02)
[6]业务需求驱动下的负载均衡技术研究与应用[J]. 蒋鸿城,洪建光,谢知寒. 电力信息化. 2008(S1)
[7]集群系统中的动态反馈负载均衡策略[J]. 买京京,龚红艳,宋纯贺. 计算机工程. 2008(16)
[8]消息中间件综述[J]. 徐晶,许炜. 计算机工程. 2005(16)
本文编号:3611964
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3611964.html