多实例部署Multi-Instance Deployment
你可能会说
把这个服务跑成多个实例分担请求,但用户换到另一个实例也要保持登录,不能只把进程数量加上去。
让同一个后端服务同时运行多个对等的运行副本,并通过负载均衡共同承载流量与提供容灾冗余的部署形态。例如负载均衡把请求分给 instance-a 和 instance-b,某个实例重启时其他实例仍可接收请求。若登录会话只放在某个实例的本地内存,用户下一次被分到另一个实例就可能掉登录,因此需要共享或外置状态。多实例可以改善服务层冗余和吞吐,但不会自动让数据库高可用,也不会自动解决并发协调和数据一致性。
也常被叫作多实例多副本部署集群部署水平扩展部署
请求换到不同实例时,什么状态必须仍然可见
流量 / 网络
负载均衡分发请求
web-1 / web-2Healthy
web-3Healthy
可观察证据请求日志出现多个实例 ID
同一服务的多个副本共同承载流量。
多实例部署增加了什么、还缺什么
多个实例分担请求并提供接管机会:入口可以把请求分到多个相同服务实例;一个实例维护或故障时,其他健康实例仍可能接收请求。副本数和分配方式要与真实服务目标一起验证,不能只看部署页面显示了几个进程。
跨请求状态不能藏在单个实例里:用户第一次请求落到 instance-a、下一次落到 instance-b 时,若会话只在 a 的本地内存,b 就无法识别用户。把会话等状态放到共享或外置存储后,分别让同一用户命中不同实例并确认仍保持登录状态,才能证明改善有效;这仍不代表数据库自动高可用或业务协调已经正确。
定时报表会暴露另一种多实例问题:日报服务扩到多个实例后,每个实例都可能同时触发同一份报表。要用共享任务记录或唯一执行规则协调,避免同一份日报被重复生成和发送。
你可以这样告诉 AI Agent
请把这个无状态 Web 服务部署为多个实例,并确认请求能由入口分配到任一健康实例。检查登录会话、上传进度等需要跨请求保留的状态,不要只放在单个实例内存;改完后分别让同一用户连续命中不同实例,确认不会掉登录。另请明确这次多实例没有自动解决哪些数据库高可用和协调问题。
延伸阅读 · 权威出处
快速练习