负载均衡常用软件及算法

目录
  1. 负载均衡组件
  2. 负载均衡策略
  3. 服务可用性探测

负载均衡组件

  • 硬件负载均衡-F5,流量百万级
  • 传输层负载均衡-LVS,十万级
  • 应用层负责均衡-nignx,万级
  • NAT技术其实也是一种负载均衡

load_balance

负载均衡策略

  • 轮询
  • weight round robbin
  • random
  • 最少连接数(需要清楚服务端状态,属于动态负载均衡)
  • 最快响应(需要记录不同机器上服务的响应速度,属于动态负载均衡)
  • hash(可以实现有状态的调度)

lb_algorithm

服务可用性探测

  • HTTP探测

    使用Get/Post的方式请求服务端的某个固定的URL,判断返回的内容是否符合预期。一般使用Http状态码、response中的内容来判断。
    
  • TCP探测

    基于Tcp的三次握手机制来探测指定的IP + 端口(握手成功后马上发一个rst
    请求断开连接[可以使用linger选项])。最佳实践可以借鉴阿里云的SLB机制
    值得注意的是,为了尽早释放连接,在三次握手结束后立马跟上RST来中断TCP连接。
    
  • UDP探测

    可能有部分应用使用的UDP协议。在此协议下可以通过报文来进行探测指定的IP + 端口。最佳实践同样可以借鉴阿里云的SLB机制
    结果的判定方式是:在服务端没有返回任何信息的情况下,默认正常状态。否则会返回一个ICMP的报错信息。
    

下面的几篇文章还不错,mark下:
分布式系统关注点——仅需这一篇,吃透「负载均衡」妥妥的
分布式系统关注点——「负载均衡」到底该如何实施?

本站总访问量