1

我有一个带有骆驼码头消费者的 akka (Java) 应用程序。在某个最小负载(大约 10 TPS)下,我们的客户端开始看到 HTTP 503 错误。我试图在我们的实验室中重现该问题,但码头似乎无法处理重叠的 HTTP 请求。以下是 apache bench (ab) 的输出:

ab 使用一个线程发送 10 个请求(即一次一个请求)

ab -n 10 -c 1 -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:      1
Time taken for tests:   0.61265 seconds
Complete requests:      10
Failed requests:        0

Requests per second:    163.23 [#/sec] (mean)
Time per request:       6.126 [ms] (mean)
Time per request:       6.126 [ms] (mean, across all concurrent requests)

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   1.0      1       2
Processing:     3    4   1.8      5       7
Waiting:        2    4   1.8      5       7
Total:          3    5   1.9      6       8

Percentage of the requests served within a certain time (ms)
  50%      6
  66%      6
  75%      6
  80%      8
  90%      8
  95%      8
  98%      8
  99%      8
  100%      8 (longest request)

ab 使用两个线程发送 10 个请求(最多同时发送 2 个请求):

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)

我不相信码头有这么糟糕。希望这只是一个配置问题。这是我的骆驼消费者 URI 的设置:

"jetty:http://0.0.0.0:8899/pim?replyTimeout=70000&autoAck=false"

我正在使用 akka 2.3.12 和骆驼码头 2.15.2

4

2 回答 2

0

Jetty 肯定不是那么糟糕,应该能够处理成千上万个 TPS 的成千上万个连接。

从您所说的很难诊断,除了 Jetty 在负载时不会发送 503 ......除非可能部署了拒绝服务保护过滤器?(并且 ab 看起来像 DOS 攻击......它基本上是并且不是一个很好的基准测试负载生成器)。

因此,您需要追踪发送 503 的人员/内容以及原因。

于 2015-07-24T04:56:58.583 回答
0

这是我的错误代码:发件人(客户端)信息被重叠请求覆盖。由于 Jetty 继续超时,发送了 503 错误消息。

于 2015-07-24T22:04:09.907 回答