我正在使用
ning async http客户端来实现非阻塞性的优点.做一个苹果对苹果测试(非阻塞与阻塞),我发现非阻塞版本正在提供更多的请求样本,但异步http客户端正在创建比其阻塞对应物更多的线程.这是预期还是我遗失的东西?
以下是压力测试的数字
Async Http Client jMeter - 2 threads,120 seconds,1 sec ramp up Peak threads : 270 Heap usage: 600mb Peak cpu usage: 30% Total samples: 18228 Blocking version jMeter - 2 threads,1 sec ramp up Peak threads: 118 heap usage: 260mb cpu usage: 18% total samples: 1472
我正在创建一个连接线程池(重用它们)
AsyncHttpClientConfig.Builder builder = new AsyncHttpClientConfig.Builder(); builder.setRequestTimeoutInMs(2000); builder.setMaximumConnectionsPerHost(10); builder.setMaximumConnectionsTotal(100); client = new AsyncHttpClient(builder.build());
这里有什么我想念的吗?我试着查看线程转储以查看创建线程的内容,但没有找到任何有用的东西.
我敢打赌,生成的每个http连接都有一个线程,用于在异步http客户端的I / O完成时触发回调.