首先单体架构向集群化部署架构转变,需要将一个软件应用同时部署在多个服务器上。
架构的变化带来了两个问题:
1.客户端请求如何均匀的分发到多台目标服务器上?
2.如何查看目标服务器的健康状态,使得客户端请求不向已经宕机的服务器发送请求
为了解决这两个问题,引入了负载均衡的设计,核心就是让客户端的请求合理均匀的分发到多台目标服务器
常见的负载均衡算法有:
1.轮询,也就是多个服务器按照顺序轮训返回,这样每个服务器都能获得相同的请求次数
2.随机,根据随机算法获取一个目标服务地址,每个服务器获得的请求数量不一定均等
3.一致hash,也就是对于具有相同hash码请求,永远发送到同一个节点上
4,最小连接数,请求更少的节点将获得更多的请求,这是比较好的策略,真正能够实现目标服务器的请求均衡