Httpd代理 - 提供数千个并发高延迟请求

时间:2016-07-22 11:52:53

标签: apache performance rest proxy latency

我有一个使用J2EE构建的 REST Web服务,它运行在具有 3个接口的Tomcat之上。其中两个接口响应很快(以毫秒为单位),但其中一个接口在1-2秒内阻塞,然后才能发出HTTP响应。就是这样,因为这个Web服务正在做的事情,我没有办法阻止更少的时间。

应用程序在Amazon的RHEL7操作系统中运行,并且在其前面有 Apache Web Server 2.4.6作为反向代理,它只处理处理LDAP身份验证。

要求是每个接口必须单独处理每秒1000个请求而不会显着减少响应时间与无负载相比,并且99.5%的请求必须成功。在阻塞接口上有1000个请求因此,每秒意味着超过1500个并发用户。

我编写了一个性能测试,没有Apache的应用程序本身可以轻松地为更多并发用户服务,而不会显着缩短响应时间。 但是,如果我让测试通过Apache代理,那么响应时间会在阻塞接口上显着下降。即使有500个并发用户,阻塞接口上10%的请求响应的时间也超过4秒。更糟糕的是,如果我运行测试几个小时,apache将占用大量内存,使得同一操作系统中的其他应用程序崩溃(没有Apache运行,我有超过2演出的可用内存)。我玩过这个SO的说明:How do you increase the max number of concurrent connections in Apache?

事情变得更好,但不是太多。

所以我的问题是,有任何人都有经验将Apache配置为代理,可以处理超过一千两百二十秒的延迟并发请求,同时处理好的低延迟请求(另外两个接口)和如果有人,那你是如何配置Apache来实现的?

0 个答案:

没有答案