负载均衡设计

转自:http://blog.csdn.net/chenggong2dm/article/details/9111309

最近要搭建一个高并发的网站。所以,得设计负载均衡这一块。从大的方向上讲,负载均衡分为硬负载均衡软负载均衡

下面依次简要说明一下:

硬负载均衡

硬负载均衡,也就是使用专用的负载均衡设备。主流的硬负载均衡器有如下几种:

F5:最主流的硬负载均衡器。便宜的20万以上,贵的100多万。

深信服:乞丐版低配12万元起价。

A10:基本都在100万元以上。

Array:16-100万。

看这价格就知道,硬负载均衡,一般的中小公司,都会被价格折磨、然后犹豫、最后放弃。

软负载均衡

软软负载均衡,也就是,不使用专用的负载均衡设备,而是通过软件来实现负载均衡。常用的有如下几种:

DNS:最原始的负载均衡方式,名字就已经说明了一切,百科一下:

  最早的负载均衡技术是通过DNS来实现的,在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。
  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),是一组真正执行客户请求的服务器,执行的服务有WEBMAILFTPDNS等。

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上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

原文地址:https://www.cnblogs.com/tv151579/p/4276690.html