一、集群是什么

  • 通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。
  • 集群组成后,可以利用多个计算机和组合进行海量请求处理(负载均衡),从而获得很高的处理效率,也可以用多个计算机做备份(高可用),使得任何一个机器坏了整个系统还是能正常运行。

二、负载均衡集群技术

  • 负载均衡(Load Balance):负载均衡集群为企业需求提供了可解决容量问题的有效方案。负载均衡集群使负载可以在计算机集群中尽可能平均地分摊处理。
  • 负载通常包括应用程序处理负载和网络流量负载,每个节点都可以承担一定的处理负载,并且可以实现处理负载在节点之间的动态分配,以实现负载均衡。

三、负载均衡集群技术的实现

  • 负载均衡(Load Balance)
  • 负载均衡技术类型:基于 4 层负载均衡技术和基于 7 层负载均衡技术
  • 负载均衡实现方式:硬件负载均衡设备或者软件负载均衡
  • 硬件负载均衡产品:F5 、深信服 、Radware
  • 软件负载均衡产品: LVS(Linux Virtual Server)、 Haproxy、Nginx、Ats(apache traffic server)

四、实现效果图

pgsql 集群负载均衡 集群的负载均衡_linux

五、负载均衡分类

  • 负载均衡根据所采用的设备对象(软/硬件负载均衡),应用的OSI网络层次(网络层次上的负载均衡)等来分类。下面着重介绍的是根据应用的 OSI 网络层次来分类的两个负载均衡类型。
    负载均衡可以大概分为以下几类:
  • 二层负载均衡(mac)
    一般是用虚拟mac地址方式,外部对虚拟MAC地址请求,负载均衡接收后分配后端实际的MAC地址响应。
  • 三层负载均衡(ip)
    一般采用虚拟IP地址方式,外部对虚拟的ip地址请求,负载均衡接收后分配后端实际的IP地址响应。
  • 四层负载均衡(tcp)
    在三层负载均衡的基础上,用ip+port接收请求,再转发到对应的机器。
  • 七层负载均衡(http)
    根据虚拟的url或IP,主机名接收请求,再转向相应的处理服务器。

在实际应用中,比较常见的就是四层负载及七层负载。这里也重点说下这两种负载。

6、四层负载均衡(基于IP+端口的负载均衡)

实现四层负载均衡的产品有:

  • F5:硬件负载均衡器,功能很好,但是成本很高。
  • lvs:重量级的四层负载软件
  • nginx:轻量级的四层负载软件,带缓存功能,正则表达式较灵活
  • haproxy:模拟四层转发,较灵活

7、七层的负载均衡(基于虚拟的URL或主机IP的负载均衡)

  1. 在四层负载均衡的基础上(没有四层是绝对不可能有七层的),再考虑应用层的特征,比如同一个Web服务器的负载均衡,除了根据VIP加80端口辨别是否需要处理的流量,还可根据七层的URL、浏览器类别来决定是否要进行负载均衡。
  2. 实现七层负载均衡的软件有:
  • haproxy:天生负载均衡技能,全面支持七层代理,会话保持,标记,路径转移;
  • nginx:只在http协议和mail协议上功能比较好,性能与haproxy差不多;
  • apache:功能较差
  • Mysql proxy:功能尚可。

8、四层负载与七层负载的区别

四层负载均衡

七层负载均衡

实现方式

基于IP+Port

基于虚拟的URL或者主机IP等

功能类比

路由器

代理服务器

难度



性能

高;无需解析内容

中;需要算法识别 URL,HTTP head 等信息

额外功能


会话保持,图片压缩等

总结:

  • 从上面的对比看来四层负载与七层负载最大的区别就是效率与功能的区别。四层负载架构设计比较简单,无需解析具体的消息内容,在网络吞吐量及处理能力上会相对比较高,而七层负载均衡的优势则体现在功能多,控制灵活强大。在具体业务架构设计时,使用七层负载或者四层负载还得根据具体的情况综合考虑。