Java 负载下嵌入式码头超时
我有一个带有camel jetty consumer的akka(Java)应用程序。在一些最小负载(大约10 TPS)下,我们的客户机开始看到HTTP 503错误。我试图在实验室重现这个问题,但jetty似乎无法处理重叠的HTTP请求。以下是apache bench(ab)的输出: ab使用一个线程发送10个请求(即一次一个请求) ab使用两个线程发送10个请求(最多同时发送2个请求): 我不相信jetty这么糟糕。希望这只是一个配置问题。这是我的骆驼消费者URI的设置:Java 负载下嵌入式码头超时,java,jetty,akka,akka-camel,Java,Jetty,Akka,Akka Camel,我有一个带有camel jetty consumer的akka(Java)应用程序。在一些最小负载(大约10 TPS)下,我们的客户机开始看到HTTP 503错误。我试图在实验室重现这个问题,但jetty似乎无法处理重叠的HTTP请求。以下是apache bench(ab)的输出: ab使用一个线程发送10个请求(即一次一个请求) ab使用两个线程发送10个请求(最多同时发送2个请求): 我不相信jetty这么糟糕。希望这只是一个配置问题。这是我的骆驼消费者URI的设置: "jetty:http
"jetty:http://0.0.0.0:8899/pim?replyTimeout=70000&autoAck=false"
我使用的是akka 2.3.12和camel jetty 2.15.2jetty肯定没有那么糟糕,应该能够用数千个测试程序集处理10秒的数千个连接 从您所说的很难诊断,除了Jetty在装载时不发送503以外。。。。除非部署了拒绝服务保护筛选器?(ab看起来像是DOS攻击……它基本上是,而且不是一个很好的基准测试负载生成器)
因此,您需要追踪发送503的人/事以及原因。Jetty肯定没有那么糟糕,应该能够通过数千个TPS处理成千上万个10秒的连接 从您所说的很难诊断,除了Jetty在装载时不发送503以外。。。。除非部署了拒绝服务保护筛选器?(ab看起来像是DOS攻击……它基本上是,而且不是一个很好的基准测试负载生成器)
因此,您需要追踪发送503的人/事以及原因。这是我的错误代码:发送者(客户端)信息被重叠请求覆盖。由于Jetty延续超时,发送了503错误消息。这是我的错误代码:发送方(客户端)信息被重叠请求覆盖。由于Jetty继续超时,发送了503错误消息
ab -n 10 -c 2 -p bad.txt http://192.168.20.103:8899/pim
Benchmarking 192.168.20.103 (be patient).....done
Server Software: Jetty(8.1.16.v20140903)
Server Hostname: 192.168.20.103
Server Port: 8899
Document Path: /pim
Document Length: 33 bytes
Concurrency Level: 2
Time taken for tests: 30.24549 seconds
Complete requests: 10
Failed requests: 1
(Connect: 0, Length: 1, Exceptions: 0)
// obmited for clarity
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.9 1 2
Processing: 3 3005 9492.9 4 30023
Waiting: 2 3005 9492.7 3 30022
Total: 3 3006 9493.0 5 30024
Percentage of the requests served within a certain time (ms)
50% 5
66% 5
75% 7
80% 7
90% 30024
95% 30024
98% 30024
99% 30024
100% 30024 (longest request)
"jetty:http://0.0.0.0:8899/pim?replyTimeout=70000&autoAck=false"