浅谈几种常用负载均衡架构
从整个 LVS 结构可以看出,Director Server 是整个 LVS 的核心,目前用于 Director Server 的操作系统只能是 Linux 和 FreeBSD,Linux 2.6 内核不用任何设置就可以支持 LVS 功能,而 FreeBSD 作为 Director Server 的应用还不是很多,性能也不是很好。对于 Real Server,几乎可以是所有的系统平台,Linux、windows、Solaris、AIX、BSD 系列都能很好地支持。 2、Nginx Nginx(发音同 engine x)是一个网页服务器,它能反向代理 HTTP、HTTPS,、SMTP、POP3、IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存。 Nginx 主要用来做七层负载均衡。 并发性能:官方支持每秒 5 万并发,实际国内一般到每秒 2 万并发,有优化到每秒 10 万并发的。具体性能看应用场景。 特点:
Nginx 的基本工作模式 一个 master 进程,生成一个或者多个 worker 进程。但这里 master 是使用 root 身份启动的,因为 Nginx 要工作在 80 端口。而只有管理员才有权限启动小于低于 1023 的端口。master 主要是负责的作用只是启动 worker,加载配置文件,负责系统的平滑升级。其它的工作是交给 worker。那当 worker 被启动之后,也只是负责一些 web 最简单的工作,而其它的工作都是由 worker 中调用的模块来实现的。 模块之间是以流水线的方式实现功能的。流水线,指的是一个用户请求,由多个模块组合各自的功能依次实现完成的。比如:第一个模块只负责分析请求首部,第二个模块只负责查找数据,第三个模块只负责压缩数据,依次完成各自工作。来实现整个工作的完成。 它们是如何实现热部署的呢?是这样的,我们前面说 master 不负责具体的工作,而是调用 worker 工作,它只是负责读取配置文件,因此当一个模块修改或者配置文件发生变化,是由 master 进行读取,因此此时不会影响到 worker 工作。在 master 进行读取配置文件之后,不会立即把修改的配置文件告知 worker 。而是让被修改的 worker 继续使用老的配置文件工作,当 worker 工作完毕之后,直接当掉这个子进程,更换新的子进程,使用新的规则。 3、HAProxy HAProxy 也是使用较多的一款负载均衡软件。HAProxy 提供高可用性、负载均衡以及基于 TCP 和 HTTP 应用的代理,支持虚拟主机,是免费、快速并且可靠的一种解决方案。特别适用于那些负载特大的 Web站点。运行模式使得它可以很简单安全的整合到当前的架构中,同时可以保护你的web服务器不被暴露到网络上。 HAProxy 是一个使用 C 语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于 TCP 和 HTTP 的应用程序代理。 Haproxy 主要用来做七层负载均衡。 常见负载均衡算法 上面介绍负载均衡技术的时候提到过,负载均衡服务器在决定将请求转发到具体哪台真实服务器时,是通过负载均衡算法来实现的。负载均衡算法可以分为两类:静态负载均衡算法和动态负载均衡算法。
轮询(Round Robin):顺序循环将请求一次顺序循环地连接每个服务器。当其中某个服务器发生第二到第 7 层的故障,BIG-IP 就把其从顺序循环队列中拿出,不参加下一次的轮询,直到其恢复正常。 以轮询的方式依次请求调度不同的服务器;实现时,一般为服务器带上权重;这样有两个好处:针对服务器的性能差异可分配不同的负载;当需要将某个结点剔除时,只需要将其权重设置为0即可;
(编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |