分布式应用连接池负载不均问题分析.docx
《分布式应用连接池负载不均问题分析.docx》由会员分享,可在线阅读,更多相关《分布式应用连接池负载不均问题分析.docx(20页珍藏版)》请在优知文库上搜索。
1、1、负我均衡基本概念1.1 负载均衡介绍在分布式架构下随着逻期业务的快速发展,系统架构也随之变得庞大且杂,这中间对系统模块的高并发、高可用、高扩展性也提出了新的要求,比如服务路由、负载均衡等.负载均衡是指将负载(如计克任务、数据流量等)分摊到多个操作单元(如服务器、网络设备等)上进行执行,以共同完成工作任务的一种技术.它建立在现有网络结构之上,提供了一种廉价、有效和透明的方法,可以扩展网络设备和服务器的带宽、增加吞吐最、加强网络数据处理能力,并提高网络的灵活性和可用性.负载均衡在实现上有硬件和软件两种方式:硬件负18均衡器功能强大、稳定性高.适合吞吐量大、高并发的流量负载,但是成本相对较高,并
2、且扩展性差;软件负觑部署上更加灵活,扩展性高,但是性能和稳定性相对较差.QQQQ11.11BareMetalVirtualizedContainersPublicCloud1)硬件负载均衡设备F5负载均衡器(1.TM):FSBIG-IP负载均衡设备,支持4-7层负载均衡,具备负载均衡、应用交换、状态监控等功能CDN负叠均衡设备:专门用于CDN的负载均衡设备,通常采用多层架构设计.包括全局负载均衡设备、局部负载均衡设备和缓存服务器等2)软件负载均衡1.VS:1.VS软件工作在网络四层,通过vrrp协议转发,有着高可用性、高性能、扩展性的优点,是1.inux内核的一款负载均衡软件。Nginx:Ng
3、inx软件工作在网络七层,它属于反向代理服务器,并且能够支持虚拟主机,是开源的负载均衡软件.HAProxy=HAProxy支持TCP和HTTP两种代理模式,它是一个反向代理服务器,支持虚拟主机,也可以用作HTTPS代理、基于内容的负载均衡等.1.2 负载均衡常用的算法负载均衡是将业务流盘负载到不同的服务器,而负载均衡算法就是实现在不同服务器之间分配网络流量的逻辑.负载均衡算法的选择会影响负载的分配机制,从而影响到性能和业务连续性,下面将介绍几种常用的负载均衡算法.1 )RoundRobin(轮询算法)轮询算法很简单,将前端请求按照顺序轮澹分配到后台服名器上,不用关心后台服务器的负载和实际连接情
4、况.轮询算法适用于后端服务器性能大致相当的情况.如果某台机器性能异常承载不了这么多的流量,会造成业务访问异常。当然在实际的运维工作中,会采用标准化的配置相同的服务器,以减少维护成本.如下图所示流量请求安装顺序分发到后台三个节点中,保证了流量均衡.2 )WeightedRoundRobin(加权轮询算法)加权轮询管法是对轮询算法的优化,因为后台服务器在配置和性能上有差异,在负载配置上将配宜高、负载低的机器分配更高的权束,使其能处理更多的请求,而配因低、负载高的机器,则给其分配较低的权至,降低其系统负载。加权轮询算法适用于后端具备不同负我容的服务器,但是配置上更为复杂,也不利于标准化的配舌.3 )
5、FastestResponseTime(最快响应凭法)最快响应算法根据负载均衡器到每一个后端服务器节点的网络响应时间(RTT时延),并将下一个到达的连接请求动态分配给响应时间最短的节点.该算法能培实现应用请求的快速响应,提高业务请求的响应时间,但是会出现请求集中在几个响应最快的节点上。如下图所示,节点1和节点3的响应时间为20ms、节点2为30ms,根据最快响应算法,连接请求负载分发到节点1和节点3中.4 )1.eastConnections(且小连接算法)像前面的轮询算法按照前端的请求次数均衡分配,实现后端服务器的负载均衡,但是实际上连接请求并不能真实反映服务器的负载情况.因此引入了最小连接
6、翼法,根据后端服务器当前的连接情况,动态的选取其中当前积压连接数展少的一台服务器来处理当前请求,尽可能的提高后台服务器利用率.最小连接算法在本质上是从后端服务器的角度来观察系疣的负载,能够最大限度的利用后端服务器的资源,不足之处是负载均衡需要更多的资源来判断后端服务的连接情况.如下图所示展小连接算法的实现:除了上面4种,负我均衡法还有随机法、加权的机法、源地址哈布法等不多介绍,实际应用中轮询算法和妙小连接算法应用的较多。2、DrUid连接池介绍2.1 Druid连接概盘Druid是开源的数据库连接池,它结合了C3P0,DBCP.Proxool等DB池的优点,同时加入了日志监控,可以很好的监控D
7、B池连接和SQ1.的执行情况.在druidDataSource中有一个电入锁和衍生的两个condition:一个监控连接池是否为空,一个监控连接池不为空.在druidDataSource中有两个线程,一个生成连接CreateConnectionThread,一个回收连接DestoryConnectionThread.在创建、获取、回收的时候都会使用这些锁和condition.每次获取Connection都会调用init,内部使用inited标识DataSource是否已经初始化0K.每次获取Connection都会需要进行加锁保证线程安全,所有操作都在加锁后执行.如果连接池内没有连接了,则调用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 应用 连接 负载 不均 问题 分析
