|深入理解LVS,还学不会算我输( 二 )


如果值较小 , DNS 流量很高 , 而 DNS 服务器将成为瓶颈;如果值较大 , 则动态负载不平衡将变得更糟 。
即使 TTL 值设置为零 , 调度粒度也是针对每个主机的 , 不同用户的访问模式可能会导致动态负载不平衡 , 因为有些人可能从站点中拉出很多页面 , 而另一些人可能只浏览了几页然后转到远 。
而且 , 它不是那么可靠 , 当服务器节点发生故障时 , 将名称映射到 IP 地址的客户端会发现服务器已关闭 。
基于分派器的负载平衡集群:分派器 , 也称为负载平衡器 , 可用于在群集中的服务器之间分配负载 , 以便服务器的并行服务可以在单个 IP 地址上显示为虚拟服务 , 并且最终用户可以像单个服务器一样进行交互不知道群集中的所有服务器 。
与基于 DNS 的负载平衡相比 , 调度程序可以按精细的粒度(例如每个连接)调度请求 , 以实现服务器之间的更好负载平衡 。 一台或多台服务器发生故障时 , 可以掩盖故障 。
服务器管理变得越来越容易 , 管理员可以随时使一台或多台服务器投入使用或退出服务 , 而这不会中断最终用户的服务 。
负载均衡可以分为两个级别 , 即应用程序级别和 IP 级别 。 例如 , 反向代理和 pWEB是用于构建可伸缩 Web 服务器的应用程序级负载平衡方法 。
他们将 HTTP 请求转发到群集中的其他 Web 服务器 , 获取结果 , 然后将其返回给客户端 。
由于在应用程序级别处理 HTTP 请求和答复的开销很高 , 我相信当服务器节点数增加到 5 个或更多时 , 应用程序级别的负载均衡器将成为新的瓶颈 , 这取决于每个服务器的吞吐量服务器 。
LVS 与 Nginx 功能对比如下:

  • LVS 比 Nginx 具有更强的抗负载能力 , 性能高 , 对内存和 CPU 资源消耗较低 。
  • LVS 工作在网络层 , 具体流量由操作系统内核进行处理 , Nginx 工作在应用层 , 可针对 HTTP 应用实施一些分流策略 。
  • LVS 安装配置较复杂 , 网络依赖性大 , 稳定性高 。 Nginx 安装配置较简单 , 网络依赖性小 。
  • LVS 不支持正则匹配处理 , 无法实现动静分离效果 。
  • LVS 适用的协议范围广 。 Nginx 仅支持 HTTP、HTTPS、Email 协议 , 适用范围小 。
LVS 的组成及作用
LVS 由两部分程序组成:
  • ipvs(ip virtual server):LVS 是基于内核态的 Netfilter 框架实现的 IPVS 功能 , 工作在内核态 。 用户配置 VIP 等相关信息并传递到 IPVS 就需要用到 ipvsadm 工具 。
  • ipvsadm:ipvsadm 是 LVS 用户态的配套工具 , 可以实现 VIP 和 RS 的增删改查功能 , 是基于 Netlink 或 raw socket 方式与内核 LVS 进行通信的 , 如果 LVS 类比于 Netfilter , 那 ipvsadm 就是类似 iptables 工具的地位 。
作用如下:
  • 主要用于多服务器的负载均衡 。
  • 工作在网络层 , 可实现高性能 , 高可用的服务器集群技术 。
  • 廉价 , 可把许多低性能的服务器组合在一起形成一个超级服务器 。
  • 易用 , 配置简单 , 有多种负载均衡的方法 。
  • 稳定可靠 , 即使在集群的服务器中某台服务器无法正常工作 , 也不影响整体效果 。
  • 可扩展性好 。
负载均衡的由来及所带来的好处
在业务刚起步时 , 一般先使用单台服务器对外进行提供服务 。 随着后期的业务增长 , 流量也越来越大 。
当这单台服务器的访问量越大时 , 服务器所承受的压力也就越大 , 性能也将无法满足业务需求 , 超出自身所指定的访问压力就会崩掉 , 避免发生此类事情的发生 。
我们将采取其他方案 , 将多台服务器组成集群系统从而来提高整体服务器的处理性能 , 使用统一入口(流量调度器)的方式通过均衡的算法进行对外提供服务 , 将用户大量的请求均衡地分发到后端集群不同的服务器上 。


推荐阅读