DropWizard:如果有100个请求,为什么它会忽略连接?

时间:2018-07-04 01:43:06

标签: java performance http connection-pooling dropwizard

我们有用于集成测试的Gatling测试(错误)。 它在一处执行的操作之一是,它基于DropWizard 1.3.5在同一时刻向受测服务发出100个HTTP请求。

在从DropWizard 0.9.5升级之前,这可以正常工作。

但是现在,这些请求在客户端最终以ConnectException结尾,并且在服务器端我看不到任何错误-DropWizard静默忽略了这些请求。我还查看了JMX上的池,没有看到这些池挂在任何地方。好像服务器失去了对套接字的跟踪,从未发送响应或“挂断”。

java.net.ConnectException: Connection timed out: somehost.mycompany.net/10.103.66.45:9000

我看过DropWizard config reference。我看不到被拒绝的内容和时间的任何微调。这是我当前的配置:

server:
  maxThreads: 64
  maxQueuedRequests: 1024
  adminMaxThreads: 8
  ...
database:
  url: jdbc:postgresql://localhost:5432/mydb
  poolInitialSize: 20
  poolMaxSize: 100

我包括数据库池大小,因为它可能是因为它收集了用于处理IoC的请求的资源,但是100应该覆盖所有Dw线程。

我希望额外的请求在队列中等待(由于使用了新的IO API,因此应该在OS端处理AFAIK)并由64个线程接受。

有趣的是,在将maxThreads设置为64之前,应用了默认值1024;然后,有时测试通过了,有时没有通过。

我的问题是:
DropWizard是否有意这样做(DoS检测)?
如果是,该如何配置?
如果没有,那么那就是一个错误。

0 个答案:

没有答案