Java社招面试题:Zookeeper 负载均衡和 Nginx 负载均衡有什么区别?

Java社招面试题:Zookeeper 负载均衡和 Nginx 负载均衡有什么区别? 很多后端工程师在面试时都会遇到一个问题:Zookeeper 的负载均衡和 Nginx 的负载均衡有什么区别?乍一听好像都是“分流请求”,但其实一个更像是调度中心,一个更像是高速收费站。今天我就用一个小故事,把这两个技术讲清楚,让你在面试时不但能回答,还能讲出技术深度。故事从一家“网红火锅店”开始前几天我和朋友去吃火锅,结果排队排了半小时。这时候我突然想到:这不就是负载均衡吗?假设这家火锅店特别火,顾客源源不断进来。为了不让某一家店挤爆,他们想出了两种不同的分流方式。第一种方式:门口安排一个分流员顾客来了之后,门口的分流员会说:“今天A店比较空,你去A店。”“B店已经满了,你去C店。”这个分流员不仅知道每家店的人数,还可以随时调整策略。这就像Zookeeper 的负载均衡。第二种方式:建一个超级大的收费站顾客开车过来,每个车道都有不同的权重。例如:1号车道 50%2号车道 30%3号车道 20%车辆按照比例进入不同车道。这个模式就像Nginx 的负载均衡。这两个方案乍一看都是分流,但背后的设计思路完全不同。Zookeeper 的负载均衡:更像“调度中心”在分布式系统里,Zookeeper 更像一个服务注册 + 调度中心。系统通常是这样工作的:服务启动 → 注册到 ZookeeperZookeeper → 保存服务列表客户端 → 从 Zook