Java DropWizard:如果满是100个请求,为什么它会忽略一个连接?
我们有用于集成测试的gatlingtests(mis)。 基于DropWizard 1.3.5,它在一个地方做的一件事是在同一时刻向测试的服务发送100个HTTP请求 在从DropWizard 0.9.5升级之前,该操作运行良好 但是现在,这些请求在客户端以Java DropWizard:如果满是100个请求,为什么它会忽略一个连接?,java,performance,http,connection-pooling,dropwizard,Java,Performance,Http,Connection Pooling,Dropwizard,我们有用于集成测试的gatlingtests(mis)。 基于DropWizard 1.3.5,它在一个地方做的一件事是在同一时刻向测试的服务发送100个HTTP请求 在从DropWizard 0.9.5升级之前,该操作运行良好 但是现在,这些请求在客户端以ConnectException结束,在服务器端我没有看到任何错误-请求被DropWizard默默地忽略。我还查看了JMX上的游泳池,没有看到它们悬挂在任何地方。看起来好像服务器失去了对套接字的跟踪,并且从未发送响应或“挂起” 我已经看过了。
ConnectException
结束,在服务器端我没有看到任何错误-请求被DropWizard默默地忽略。我还查看了JMX上的游泳池,没有看到它们悬挂在任何地方。看起来好像服务器失去了对套接字的跟踪,并且从未发送响应或“挂起”
我已经看过了。我看不到任何被拒绝的内容和时间的微调。这是我当前的配置:
server:
maxThreads: 64
maxQueuedRequests: 1024
adminMaxThreads: 8
...
database:
url: jdbc:postgresql://localhost:5432/mydb
poolInitialSize: 20
poolMaxSize: 100
我之所以包含DB池大小,是因为它可能会收集请求处理IoC的资源,但100应该覆盖所有Dw线程
我希望额外的请求在队列中等待(因为使用了新的IO API,所以AFAIK应该在OS端处理),并由64个线程执行
有趣的是,在我将maxThreads
设置为64之前,默认值为1024;然后,有时考试通过,有时不通过
我的问题是:DropWizard是否有意这样做(DoS检测)?
如果是,如何配置它?
如果没有,那么这就是一个bug。是连接超时还是读取超时?如果读取超时-您的应用程序服务响应时间是否增加?@JigarJoshi,ConnectException。我写了
TimeoutException
,但实际上是Gatling包装,这让我很困惑。编辑。
server:
maxThreads: 64
maxQueuedRequests: 1024
adminMaxThreads: 8
...
database:
url: jdbc:postgresql://localhost:5432/mydb
poolInitialSize: 20
poolMaxSize: 100