我有一个Web服务在3台服务器上运行。服务如下 - 服务器1接收用户请求将其存储在本地数据库并对其执行一些操作。 - 服务器2和3是相同的,主要工作马匹,它们根据请求从互联网获取信息并将其返回。 - 服务器1通过局域网上的http请求调用服务器2/3(服务器2上有一个php脚本,因此服务器1将其称为http://localip/script.php) - 服务器1有选择地调用服务器2或3(这是为了分发负载) 服务器2/3上的每个查询都需要大约8秒来处理。 现在,当我安装的所有服务器上的监视工具也发现,Server1是有太多的负荷(这表明进程数>关键限值) 这是不是平衡负载的方式吗?我如何减少Server1中的负载?负载平衡跨服务器
Q
负载平衡跨服务器
0
A
回答
1
服务器1是在响应用户传入的请求。所以如果你确定它是瓶颈,那么你需要把注意力集中在那里。
如果服务器2和3只执行查询到互联网,那么他们可能没有做太多的工作处理器/磁盘明智的。
如果配置做一个相当容易的任务2台服务器,且主要面向用户的服务器过载,它可能是更好的只是运行所有3台服务器作为面向用户的。
从您所描述的情况来看,听起来像服务器#1阻塞了服务器的响应3,这意味着它必须保持打开许多可能的连接。如果服务器实际上没有那么多的工作,因为他们的任务只是因特网查询,那么通过将面向用户的服务器和查询引擎合并到一台服务器并在所有3台服务器之间分配用户负载可能会更好。 。
这样,每个服务器具有较少的开放用户连接。而且查询引擎仍然不占用资源(如果它只是Web请求),所以它不会对用户性能产生负面影响。
只是对你的一些想法。如果不知道更多关于应用程序的信息,则无法完全确定。
补充意见
正如评论你应该考虑一个适当的负载平衡器提到,良好的硬件负载均衡器是第一个建议。你在哪里运行你的服务器?如果他们位于Amazon EC2,Rackspace等云数据中心,那么您可以轻松获得负载平衡服务。
您还可以使用软件负载平衡器。 Apache提供此功能,即使:
http://httpd.apache.org/docs/current/mod/mod_proxy_balancer.html
即使当前的配置将有可能把阿帕奇在一台服务器的前面,然后调整它,以便与Apache服务器(在做负载均衡)获得较低的流量百分比,以抵消Apache服务器的费用。在这种情况下,您不需要更换硬件。虽然你有一个明显的单点故障,与目前的情况不同,但一个合适的负载平衡器通常可以缓解目前在架构中遇到的单点故障问题。
相关问题
- 1. HAProxy负载平衡MySQL服务器
- 2. nginx与iis服务器,负载平衡
- 3. 负载平衡与Apache服务器2.2
- 4. 聊天服务器负载平衡
- 5. php SoapClient和负载平衡服务器
- 6. 跨负载平衡服务器的应用程序变量(ASP.Net)
- 7. 亚马逊网络服务负载平衡器无法平衡负载
- 8. 负载均衡服务器
- 9. 负载平衡服务器负载为google
- 10. Google云负载平衡服务扩展
- 11. WSO2 ESB web服务负载平衡
- 12. 负载平衡
- 13. 负载平衡
- 14. Azure负载平衡器
- 15. AWS负载平衡器
- 16. 负载平衡器配置
- 17. Netty负载平衡器
- 18. solrcloud的负载平衡器
- 19. 负载平衡器IP
- 20. .NET和负载平衡器?
- 21. 跨负载平衡服务器的选择性高速缓存清除(ASP.Net)
- 22. Ruby on Rails ActiveRecordStore是否支持跨服务器的负载平衡?
- 23. F5 Web服务器中的负载平衡器客户端IP
- 24. 在IBM Websphere环境中安装负载平衡器服务器
- 25. Kamailio作为多个星号服务器的负载平衡器
- 26. 带有负载平衡器的JBoss服务器
- 27. 服务器负载均衡脚本
- 28. 服务器负载均衡算法
- 29. Apache Web服务器负载均衡
- 30. 极其不均衡的云服务负载平衡与Azure
服务器2和3从互联网获取信息并将其返回到服务器1,这意味着服务器2和3阻止服务器1,而不是另一个方向 – ajreal 2010-11-14 05:19:53
@ajreal实际上这是一个移动服务,当用户向某个号码发送短信时它击中我们的IP即服务器1.我不能设置每个短信打不同的IP。所以我必须以某种方式从服务器1拆分负载 – 2010-11-14 06:12:52
@Ashwin - 当然,你可以,市场上有很多负载均衡器硬件,你只需要配置一个虚拟IP作为公共IP,当你的负载均衡器硬件接收请求,它可以按照请求到服务器1到N – ajreal 2010-11-15 04:54:57