Nginx负载过高,加机器就能解决吗?

简介: 一个架构难题的剖析:A机器顶不住,加B机器就能解决吗?

您提出的问题困扰了很多人:当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机器不一定能无限提高并发。当后端服务数量达到一定程度后,瓶颈可能转移到其他地方,例如数据库或网络基础设施。

相关文章
|
应用服务中间件 nginx
使用Nginx正向代理让内网机器上外网
使用Nginx正向代理让内网机器上外网
2603 0
|
6月前
|
负载均衡 网络协议 应用服务中间件
Nginx负载配置
Nginx负载配置
85 8
|
应用服务中间件 Shell Linux
通过 Consul-Template 实现动态配置Nginx负载服务
Consul-Template提供了一个便捷的方式从Consul中获取存储的值,Consul-Template守护进程会查询Consul实例来更新系统上指定的任何模板。当更新完成后,模板还可以选择运行一些任意的命令。
2135 0
|
缓存 监控 算法
nginx并发怎么看?负载怎么看?
还在等什么,快来一起讨论关注吧,公众号【八点半技术站】,欢迎加入社群
nginx并发怎么看?负载怎么看?
|
应用服务中间件 nginx C语言
Nginx集成Lua实现根据POST请求报文内容自定义负载策略
上游服务调用下游服务的接口,部分接口业务高峰期请求量大,下游服务器压力很大,会影响到其它接口的访问。如果通过增加下游服务器横向扩容会增加成本,且在业务高峰期还是有可能影响其他接口。所以需要使用Lua配置一种可以根据报文内容进行负载的策略(调用接口的URL是固定的,下游服务通过解析报文调用对应接口)。
651 0
|
缓存 应用服务中间件 开发工具
Nginx编译安装nginx-upsync-module模块以实现动态负载
以Consul作为注册中心,用nginx-upsync-module模块实现动态负载。
1080 0
Nginx编译安装nginx-upsync-module模块以实现动态负载
|
Web App开发 缓存 应用服务中间件
|
Web App开发 测试技术 应用服务中间件