前言

什么是负载均衡

  • 查看百度百科,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行

  • 那么如果要实现负载均衡,具体是要做哪些事呢

    • 第一步是要维护哪些服务实例可用,包括需要处理临时新增了服务或者某个服务不可用了情况
    • 有了服务实例之后就是根据请求以及某种负载均衡规则选择服务实例
    • 然后就是将执行请求,响应处理
    • 如果调用失败是不是要重试

主要负载均衡策略

  • 1、简单轮询负载均衡(RoundRobin)

    • 以轮询的方式依次将请求调度不同的服务器,即每次调度执行i = (i + 1) mod n,并选出第i台服务器。
  • 2、随机负载均衡 (Random)

    • 随机选择状态为UPServer
  • 3、加权响应时间负载均衡 (WeightedResponseTime)

    • 根据响应时间分配一个weight,响应时间越长,weight越小,被选中的可能性越低。
  • 4、区域感知轮询负载均衡(ZoneAvoidanceRule)

    • 复合判断server所在区域的性能和server的可用性选择server

总结

  • 负载均衡器的目的主要是根据负责均衡策略选取合适的服务端实例,那么负载均衡器就需要维护一个可用的服务端清单,然后通过心跳机制来删除故障的服务端节点以保证清单中都是可以正常访问的服务端节点,此时当客户端的请求到达负载均衡服务器时,负载均衡服务器按照某种配置好的规则从可用服务端清单中选出一台服务器去处理客户端的请求。

参考

https://blog.csdn.net/zhxdick/article/details/79449146