Nginx使用hash/ip_hash做负载均衡时是否采用带虚拟节点的一致性哈希?
Nginx一致性哈希负载均衡与虚拟节点的实现情况
ip_hash指令:该指令基于客户端IP做路由映射,实现逻辑是直接将IP(或IP的部分段)计算后映射到服务器列表的索引,没有采用虚拟节点机制。当服务器集群规模变化时,会有较多客户端的路由关系失效,且若服务器性能差异较大,易出现负载倾斜问题。hash指令:自定义键的一致性哈希实现(比如hash $remote_addr;),默认也没有内置虚拟节点。不过可以通过手动配置实现类似效果:在upstream块中为同一服务器添加多个权重相同的条目(重复声明同一个server地址,或设置相同weight),以此模拟虚拟节点,优化负载分布,缓解热点倾斜。
Nginx官方文档未明确提及虚拟节点的概念,但从源码及实际使用场景来看,原生一致性哈希实现未包含该机制,需通过配置副本手动模拟。
内容的提问来源于stack exchange,提问作者djGowda
相关产品推荐
相关产品推荐

