您提出的问题困扰了很多人:当A机器上的Nginx负载过高时,为何建议添加B和C机器却能解决问题?
问题的回答
让我们一步步理解这个回答:
区分角色:A机器部署了Nginx和真实服务,而B机器只负责负载均衡,将流量分发给A和C机器。这本质上是将服务分层:负载均衡层(B)和服务层(A、C)。
Nginx的性能:Nginx是一个专门用于负载均衡的反向代理软件,其处理速度极快。因此,在上述架构中,Nginx不太可能是并发性能瓶颈。
真实服务的性能:当只有一台A机器时,由于它同时处理Nginx反向代理请求和业务逻辑,因此真实服务的处理能力可能会限制并发能力。添加A和C机器意味着部署了更多真实服务实例,从而理论上可以提高并发能力。
time_wait:虽然time_wait会导致连接占用,但可以通过调整内核参数来加快其回收和复用速度,以缓解并发的影响。
无限扩展:添加D和E机器不一定能无限提高并发。当后端服务数量达到一定程度后,瓶颈可能转移到其他地方,例如数据库或网络基础设施。