`

负载均衡技术 比较

 
阅读更多

负载均衡技术
负载均衡

1.1 负载均衡类型
HTTP重定向,DNS域名解析,反向代理,IP负载均衡,数据链路层负载均衡

1.2负载均衡算法
随机 ,轮询 ,加权轮询,最小连接数,加权最小连接数,源地址散列

1.3常用的负载均衡技术包括:
硬解:F5
软件:dubbo ,  lvs、haproxy、nginx 等

lvs、haproxy、nginx 负载均衡的比较分析
链接:http://blog.csdn.net/gzh0222/article/details/8540604


实践

1.dubbo 应用服务器负载均衡(详见dubbo)
环境
windows/Linux/Unix

组件
zookeeper 集群(可用性)
应用服务器集群

配置
负载均衡设置

总结
高性能:集群/负载均衡
高可用性: 集群
高伸缩性:集群/负载均衡
高可扩展性:dubbo

集群:
1.web应用集群:
1.1 原理:基于阿里dubbo框架实现
做法:
[1]在3台不同物理服务器上部署应用(基于Tomcat);
[2]应用都注册于1个zookeeper集群上;

1.2zookeeper集群:分布式协调服务集群

1.3 zookeepre服务监控中心集群

1.4 测试/优化
案例设计:
用户登录服务,在本地进行远程服务调用;
尝试:在主zookeeper 异常关闭时,服务是否继续可用(先关1再关1);
   测试方法:关闭其中一台zookeeper测试
    
 发现:
 1)当本机有zookeeper时,会首先注册到本地;再测:关闭zookeeper2,重启tomcat2,看服务会注册到1还是3;
 发现注册的地址还是130;说明:若注册地址包含本机,默认会优先选择集群中本机,因为集群式通过集体服务的,选择本机提高效率;
 再测:在注册地址配置文件内,不写本机;还是会写成本机;
 2)三台zookeeper组成的集群,至少活着2台才行(); 
 
 
尝试:服务器停掉时,访问是否异常(先关1再关1);
   测试方法:一台显示登陆成功,一台显示登陆失败;关闭其中一台测试;
在控制台观察:访问的特点


负载均衡:
应用通过Dubbo实现负载均衡
zookeeper 无




Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下。

一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术。具体的应用需求还得具体分析:
(1)通过硬件来进行进行,常见的硬件有比较昂贵的F5和Array等商用的负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护、缺点就是花销太大,
所以对于规模较小的网络服务来说暂时还没有需要使用;
(2)通过类似于Nginx/LVS/HAProxy的基于Linux的开源免费的负载均衡软件,这些都是通过软件级别来实现,所以费用非常低廉。
    2.1 中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了;如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的;
    2.2 大型网站或重要的服务,且服务器比较多时,可以考虑用LVS。

目前关于网站架构一般比较合理流行的架构方案:
Web前端采用Nginx/HAProxy+Keepalived作负载均衡器;
后端采用MySQL数据库一主多从和读写分离,采用LVS+Keepalived的架构。
当然要根据项目具体需求制定方案,下面说说各自的特点和适用场合。
参考:http://www.ha97.com/5646.html

1.什么是LVS
LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。
调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。
整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。
为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。一般来说,LVS集群采用三层结构,其体系结构如图所示:
参考: http://soft.chinabyte.com/25/13169025.shtml

2.什么是Nginx
Nginx是一款轻量级的Web 服务器,反向代理及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,
中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
在连接高并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应
特点: 来自网络
【1、热部署】
在master管理进程与worker工作进程的分离设计,使的Nginx具有热部署的功能,那么在7×24小时不间断服务的前提下,升级Nginx的可执行文件。也可以在不停止服务的情况下修改配置文件,更换日志文件等功能。
【2、可以高并发连接】
这是一个很重要的一个特性!在这一个 互联网 快速发展, 互联网用户数量不断增加,一些大公司、网站都需要面对高并发请求,如果有一个能够在峰值顶住10万以上并发请求的Server,肯定会得到大家的青睐。
理论上,Nginx支持的并发连接上限取决于你的内存,10万远未封顶。
【3、低的内存消耗】
在一般的情况下,10000个非活跃的HTTP Keep-Alive 连接在Nginx中仅消耗2.5M的内存,这也是Nginx支持高并发连接的基础。
【4、处理响应请求很快】
在正常的情况下,单次请求会得到更快的响应。在高峰期,Nginx可以比其他的Web服务器更快的响应请求。
【5、具有很高的可靠性】
Nginx是一个高可靠性的Web服务器,这也是我们为什么选择Nginx的基本条件,现在很多的网站都在使用Nginx,足以说明Nginx的可靠性。高可靠性来自其核心框架代码的优秀设计、模块设计的简单性;并且这些模块都非常的稳定。
【6、反向代理】
Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的。
何为反向代理呢?即以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
而Nginx主要完成的工作就是反向代理,比如我们向一台服务器的80端口发送了请求,该请求首先由Nginx监听到,其接受到请求内容后再转发给其他服务器,其他服务器处理完后再将结果传送给Nginx,最后由Nginx来统一返回给初始请求端。
Nginx最常见的使用方法就是作为静态资源伺服器,比如将CSS,JS,html,htm等文件进行缓存处理。
我们需要分文件类型来进行过滤,比如jsp直接给tomcat处理,因为nginx并不是servlet容器,没办法处理JSP,而html,js,css这些不需要处理的,直接给nginx进行缓存。

Nginx Web服务器优点
Nginx 是一个很牛的高性能Web和反向代理服务器, 它具有有很多非常优越的特性:
在高连接并发的情况下,Nginx是Apache服务器不错的替代品: Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一. 能够支持高达 50,000 个并发连接数的响应,
Nginx作为负载均衡服务器: Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务, 也可以支持作为 HTTP代理服务器对外进行服务. Nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多.
作为邮件代理服务器: Nginx Web服务器同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器), Last.fm 描述了成功并且美妙的使用经验.
Nginx Web服务器是一个 安装非常的简单 , 配置文件 非常简洁(还能够支持perl语法), Bugs非常少的服务器: Nginx 启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动. 你还能够 不间断服务的情况下进行软件版本的升级.
具体参考:http://tengine.taobao.org/book/

3.keepalived
Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务的高可用。
Keepalived 以 VRRP 协议为实现基础,用 VRRP 协议来实现高可用性(HA)。VRRP(Virtual RouterRedundancy Protocol)协议是用于实现路由器冗余的协议,VRRP 协议将两台或多台路由器设备虚拟成一个
设备,对外提供虚拟路由器 IP(一个或多个),而在路由器组内部,如果实际拥有这个对外 IP 的路由器如果工作正常的话就是 MASTER, 或者是通过算法选举产生, MASTER 实现针对虚拟路由器 IP 的各种网络功能,如 ARP 请求,ICMP,以及数据的转发等;其他设备不拥有该虚拟 IP,状态是 BACKUP,除了接收 MASTER 的
VRRP 状态通告信息外,不执行对外的网络功能。当主机失效时,BACKUP 将接管原先 MASTER 的网络功能。VRRP 协议使用多播数据来传输 VRRP 数据, VRRP 数据使用特殊的虚拟源 MAC 地址发送数据而不是自身网卡的 MAC 地址,VRRP 运行时只有 MASTER 路由器定时发送 VRRP 通告信息,表示 MASTER 工作正常以及虚
拟路由器 IP(组),BACKUP 只接收 VRRP 数据,不发送数据,如果一定时间内没有接收到 MASTER 的通告信息,各 BACKUP 将宣告自己成为 MASTER,发送通告信息,重新进行 MASTER 选举状态。

4.比较
(总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解
参考:http://www.ha97.com/5646.html

=================================================
=================================================
=================================================
=================================================














分享到:
评论

相关推荐

    实用负载均衡技术网站性能优化攻略.pdf

    实用负载均衡技术网站性能优化攻略 负载均衡技术是指通过在多个服务器上分配访问负载,以提高网站的可用性、可靠性和性能的一种技术。负载均衡技术可以应用于各种类型的网站,包括静态网站、动态网站、门户网站、...

    负载均衡技术文档

    负载均衡技术是网络服务中的关键组成部分,它在大型分布式系统中扮演着至关重要的角色,确保了高可用性和可扩展性。本技术文档集合涵盖了多个负载均衡的方面,旨在帮助学习者深入理解其原理、实现方式以及应用实践。...

    负载均衡技术的发展.

    负载均衡技术的发展与挑战 随着互联网的飞速发展,网络技术的进步催生了大批网站的诞生,尤其是电子商务领域的兴起,使得网站访问量激增。然而,迅猛增长的访问量对网站的承载能力提出了严峻考验,一些网站因无法...

    负载均衡技术基础知识

    负载均衡技术是一种网络架构策略,旨在优化系统性能和可用性,通过分散网络流量,确保没有单一设备承受过重的工作负载。该技术广泛应用于Web服务器、FTP服务器和其他关键任务服务器,以提高Internet服务器程序的可...

    云计算负载均衡技术

    讨论了云计算下负载均衡技术,讨论了云计算下负载均衡技术,讨论了云计算下负载均衡技术,讨论了云计算下负载均衡技术,讨论了云计算下负载均衡技术,讨论了云计算下负载均衡技术

    实用的负载均衡技术

    负载均衡技术是一种广泛应用的技术,目的在于将服务的并发请求平均分配到后端多个具有相同处理能力的服务节点上进行处理,从而以一种廉价且有效透明的方式扩展网络设备或服务的带宽,增加吞吐量,增强服务的整体处理...

    负载均衡技术和实现负载均衡的各种工具介绍

    负载均衡技术是一种用于优化网络性能、提高可用性和扩展性的关键技术。随着企业业务量的增加,IT系统处理的数据流量和请求量也会显著增长,单个服务器往往难以承担这种增长带来的高负荷。此时,负载均衡技术就显得尤...

    实用负载均衡技术:

    负载均衡技术是现代软件工程和架构设计中的关键组成部分,尤其对于构建高可用、高性能的网站系统至关重要。在本文中,我们将深入探讨负载均衡的基本概念、重要性以及如何通过实际应用来优化网站性能。 首先,我们...

    负载均衡器技术Nginx和F5的优缺点对比

     目前有许多不同的负载均衡技术用以满足不同的应用需求,如软/硬件负载均衡、本地/全局负载均衡、更高网络层负载均衡,以及链路聚合技术。  我们使用的是软负载均衡器Nginx,而农行用的是F5硬负载均衡器,这里...

    负载均衡技术概览

    负载均衡技术是网络架构中不可或缺的一部分,其目的是为了应对日益增长的业务量和网络流量,确保网络服务的稳定性和高效性。随着互联网的发展,企业网、园区网以及广域网如Internet上的数据流量和计算需求急剧增加,...

    服务器负载均衡技术

    服务器负载均衡技术是一种网络优化策略,旨在通过将网络流量分散到多台服务器上,提高系统的稳定性和可用性,同时增强处理大规模并发请求的能力。负载均衡技术的核心思想是将客户端的请求均匀分配到服务器集群,避免...

    负载均衡技术全攻略

    负载均衡技术是网络架构中的重要组成部分,其主要目标是确保网络服务的稳定性和高可用性。通过对网络流量的管理和分配,负载均衡可以在多台服务器之间有效地分摊工作负载,提高系统的处理能力,同时减少单个服务器的...

    负载均衡技术白皮书.pdf

    负载均衡技术是现代网络架构中的关键组件,用于优化资源分配,提高服务可用性和响应速度,以及确保系统整体的稳定运行。本文档详细介绍了负载均衡技术的产生背景、实现方式、技术特色,并探讨了各种类型的负载均衡...

    实用负载均衡技术:网站性能优化攻略

    在介绍负载均衡技术之前,我们先了解一些基础概念。 首先,负载均衡能够帮助网站应对的“云环境”,通常指的是云计算技术,它为用户提供按需的计算资源和存储能力。云服务的可扩展性和弹性能够满足流量的波动性,但...

    《实用负载均衡技术:网站性能优化攻略》.rar

    《实用负载均衡技术:网站性能优化攻略》这本书深入探讨了如何通过负载均衡技术提升网站的性能和稳定性。负载均衡是现代互联网架构中的关键组件,它能够有效地分散服务器压力,提高服务可用性,确保用户访问体验。...

Global site tag (gtag.js) - Google Analytics