轮询之外的负载均衡算法
轮询和最少连接数只是最常见的起点,生产环境中往往会在此基础上进一步优化:加权轮询会给性能更强的服务器分配更多请求;最短响应时间会参考服务器近期的响应速度;一致性哈希则大量用于缓存层,即便服务器被增减,同一个键也几乎总能映射到同一台服务器上。
云原生架构下的负载均衡
如今的负载均衡往往不止依赖单一的专用设备,而是同时发生在多个层级:云厂商提供的托管负载均衡器位于整个应用前端,Kubernetes集群内部由Ingress控制器分发流量,服务网格则负责内部各微服务之间的负载均衡。每一层解决的都是同一个基本问题——不让任何一个实例过载,只是作用的范围不同。
常见问题
负载均衡器本身出故障了怎么办?
为避免负载均衡器本身成为单点故障,实际部署中通常会运行至少两台负载均衡器,采用主备或双活模式,一台出问题时另一台可以无缝接管流量。
小型网站也需要负载均衡吗?
如果单台服务器就能轻松应对流量,暂时不需要。但一旦流量增长到需要多台服务器分担的程度,负载均衡器就成为必需品,因为没有其他方式能把流量分发到多台服务器上。