常见的负载均衡策略

随机、hash、轮询、权重、最小连接数、最快响应速度

适用场景

1、在短连接中 因为连接快速建立销毁 因为数据延时容易造成堆积效应, 随机、hash、轮询、权重 四种方式大致能够保持整体是均衡的,服务端重启也不会影响整体均衡

2、最小连接、最快响应速度是有状态的算法,因为数据延时容易造成堆积效应

3、长连接,连接会一直保持,断连后需要重新选择一个新的服务节点,当服务重启后,最终连接数会出现不均衡的情况

4、随机、轮询、权重的策略在客户端重连切换时可以使用

长连接相对短连接的优势

在整体连接稳定时,服务端需要一个rebalance机制,将集群视角的连接数重新洗牌分配,趋向另外一种稳态

Nacos负载均衡方案

客户端随机选择/基于权重随机+服务端运行时柔性调整

1、建立连接:启动时实时连接一次,失败后进入异步重连

2、连接切换

  • 服务端推送切换

    异步切换节点,指定IP,只做一次客户端连接尝试,失败后正常切换

  • 心跳失败

    心跳失败时,启动切换

  • 请求失败时

    如果连接状态不合法,启动异步重连

服务端重启时连接切换的流程

1、服务集群中的Server1要重启,将Server1的连接数上限设置为0

2、Server1推送给他所服务的客户端,告诉客户端我要下班了

3、客户端接收到Server1发送过来的连接重置指令,然后进行节点切换

4、Server1进行重启,重启好之后,告诉其他的Server,我来上班了,让集群知道Server1可以正常提供服务了

通过控制台监控数据和运维管理

1、Server之间的数据共享,包含负载计算数据、变更管理、权重值、节点监控数据、调节策略数据

2、通过web ui控制台可以查看到这些监控数据包括基础系统信息和连接数

3、通过控制台也可以进行运维操作 比如重启(柔性驱逐)/连接数上限调整/指定节点重置

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐