负载均衡

什么是负载均衡?

当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台后端服务器去处理。

那么在这个过程中,调度者如何合理分配任务,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡问题。

负载均衡开源代码分析:

1. LVS

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。 本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种 IP 负载均衡技术(VS/NAT、VS/TUN和VS/DR),八种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。

2. KeepAlived

keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后 Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

3. HAProxy

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、 快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点, 这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

4. Nginx

Nginx 是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。

特点:

(1)轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

(2)占有内存少,并发能力强。

(3)可为负载均衡服务器

(4)Nginx是Apache服务器不错的替代品

5. Squid

Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和 Web 缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高 Web 服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Linux一类系统运行。

6. Pen

Pen 是一个负载均衡器,支持 UDP 和 TCP 基础协议,比如 HTTP 和 SMTP,在外部允许把多个服务器显示为一个,可以自动检测可用服务器上的分布式客户端和停掉的服务器。Pen 提供高可用性,高性能的特性。

这个负载算法会继续追踪客户端,也会尝试把他们访问的最后时间发送给服务器。客户端表有大量的插槽(默认是 2048,通过命令行参数可设置)。当表满了的时候,当前最小使用的那个会抛出去,换成新的。

这是个简单的优先轮询算法,会重复的连接发送客户端到不同的服务器。当 Pen 检测到一个服务器不可用,就会扫描启动其他服务器,这样就可以避免负载平衡和”平滑“故障的问题。

7. mod_backhand

mod_backhand 是一个Apache 的负载平衡模块 。它定义了每个请求的 HTTP 重定向在一个异构的Apache服务器群集。每个请求的处理,并贯穿了一套“候选人的职能” ,以确定哪些服务器是最适合的回应。请求然后代理到该服务器。设施已到位,书写自己的动态加载决策算法。一切有关的要求和当前可用的资源可用于决策过程。

8. Galera Load Balancer

GLB (Galera Load Balancer) 是一个与 Pen 类似的 TCP 负载均衡器,它功能没有 Pen 那么强大,其主要的目的是做一个非常快速的 TCP 协议代理。通过利用多核CPU的优势,GLB 的速度有显著的提升。

9. DNS 动态解析软件 Bind

BIND(Berkeley Internet Name Daemon)是现今互联网上最常使用的DNS服务器软件,使用 BIND作为服务器软件 DNS服务器约占所有DNS服务器的九成。BIND现在由互联网系统协会 (Internet Systems Consortium)负责开发与维护。

BIND的历史:20世纪80年代,柏克莱加州大学计算机系统研究小组的四个研究生、周松年一同编写了BIND的第一个版

本,并随4.3BSD发布。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值