负载均衡笔记

根据部分资料对负载均衡的相关知识做梳理。

1. 基本概念
  硬件负载均衡:F5 Big IP
  软件负载均衡:LVS、Nginx、HAProxy
  高可用性软件:heartbeat,keepalived

  成熟的linux 集群架构:LVS + keepalived、Nginx + keepalived、DRBD + Heartbeat

2. F5 Big IP
  2.1. 由f5 形成一个“虚拟服务器”外网ip:port,内部的各个服务器节点内网ip:port形成“地址池”;
  2.2. f5根据客户请求,将客户请求转发到具体的节点地址 内网ip:port,类似于公私网穿越;
  2.3. f5分发客户请求有多重算法,静态算法(如轮训、权重)、动态算法(如最少链接、最快回应)、失效机制(如最少活动成员)
  2.4. f5通过策略保持机制,保障同一个客户端的请求落在同一个服务器节点;
  2.5. f5提供monitor功能对下属服务器节点进行健康检查,例如发送ICMP消息、建立TCP链接等;
  2.6. f5也提供双机冗余配置,具备watch dog机制;


3. LVS(linux virtual server)
  3.1. LVS采用ip负载均衡技术\基于内容的请求分发技术,其中IP负载均衡技术主要有如下几类:
    1)VS/NAT:基于NAT
    2)VS/TUN:基于IP 隧道,也成为IP封装技术,即将一个ip报文封装到另外一个ip报文中去
在实际的业务中,往往是请求报文频繁且小,但范围报文是较大的,这就使得VS/NAT方案中,负载均衡器自身成为瓶颈。
在VS/TUN中,负载均衡器与实际服务器搭建IP隧道,负责请求报文传输。而返回报文直接由真实服务器返回给真实客户端。
    3)VS/DR:基于直接路由,与VS/TUN类似,只是在负载均衡器与真实服务器之间通过直接路由实现,因此必需在相同的物理网段。

  3.2. LVS采用三层架构
    1)负载均衡器:负责客户请求的分发;
    2)服务器池:真正处理业务的服务器,如web\mail\ftp等;
    3)共享存储:

  3.3. LVS支持的算法包括轮询、加权、最少连接、加权最少连接;

4. Nginix
  4.1. http服务器 和 反向代理服务器;
  备注:正向代理 与 反向代理
    1)正向代理:代理服务器分发客户请求至原始服务器,通常的代理技术
    2)反向代理:代理服务器对用户而言作为“原始服务器”,其向真实的服务器获取资源返回请求;
    反向代理通常与缓存机制绑定,CDN的原理就是反向代理服务器。

  4.2. 配置
  #例如设定负载均衡的服务器列表
    upstream server {
    #weigth参数表示权值,权值越高被分配到的几率越大
    server 192.168.8.1x:3128 weight=5;#本机上的Squid开启3128端口
    server 192.168.8.2x:80 weight=1;
    server 192.168.8.3x:80 weight=6;
    }

  5. keepalived
    实现真实机的故障隔离和负载均衡间的切换。
    原理,keepalived工作在层3,4,7,即:
      层3 IP层:Keepalived会定期向服务器群中的服务器发送一个ICMP的数据包,
    如果发现某台服务的IP地址没有激活,Keepalived便报告这台服务器失效,
    并将它从服务器群中剔除
      层4 TCP层:检测指定端口状态,如80端口
      层7 应用层:根据用户的设定检查服务器程序的运行是否正常

你可能感兴趣的:(负载均衡)