转自:http://blog.csdn.net/chenggong2dm/article/details/9111309
最近要搭建一个高并发的网站。所以,得设计负载均衡这一块。从大的方向上讲,负载均衡分为硬负载均衡和软负载均衡。
下面依次简要说明一下:
硬负载均衡:
硬负载均衡,也就是使用专用的负载均衡设备。主流的硬负载均衡器有如下几种:
F5:最主流的硬负载均衡器。便宜的20万以上,贵的100多万。
深信服:乞丐版低配12万元起价。
A10:基本都在100万元以上。
Array:16-100万。
看这价格就知道,硬负载均衡,一般的中小公司,都会被价格折磨、然后犹豫、最后放弃。
软负载均衡:
软软负载均衡,也就是,不使用专用的负载均衡设备,而是通过软件来实现负载均衡。常用的有如下几种:
DNS:最原始的负载均衡方式,名字就已经说明了一切,百科一下:
LVS:最常用的软件负载均衡。我见过的国内百万级用户的架构,基本都是靠它顶的。
LVS 是一个开源的软件,可以实现LINUX平台下的简单负载均衡。
优点:
1 、开源,免费
2、在网上能找到一些相关技术资源
3、具有软件负载均衡的一些优点
缺点:
1、具有开源产品常有的缺点,最核心的就是没有可靠的支持服务,没有人对其结果负责
2、功能比较简单,支持复杂应用的负载均衡能力较差,如算法较少等。
3、开启隧道方式需重编译内核
4、配置复杂
5、只支持LINUX ,如果应用还包括WINDOWS、SOLIRIS等就不行了
LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。一般来说,LVS集群采用三层结构。
主要组成:
A.负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的. B.服务器池(server pool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。
C.共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。
Nginx:也是现在流行的、常用的负载均衡方案之一。
百科:
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发。
Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。与旧版本(<=2.2)的Apache不同,nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑,削减了上下文调度开销,所以并发服务能力更强。整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活。 在Linux操作系统下,nginx使用epoll事件模型,得益于此,nginx在Linux操作系统下效率相当高。同时Nginx在OpenBSD或FreeBSD操作系统上采用类似于epoll的高效事件模型kqueue。
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。