vert HttpClient性能非常好,但是使用不当,就会出现非常难于定位的问题。很多问题非常严重,比如挂死,分析日志、堆栈都可能看不出任何原因。因此在写代码的时候,就需要非常注意。下面有几个排查点:
-
设置请求超时时间。必须合理设计超时时间,否则异常情况,会导致连接不释放。如果在response里面做其他操作,还需要重设超时时间。 例如:
HttpClientRequest clietRequest = httpClient.request(context.request().method(), uri.getPort(), uri.getHost(), "/" + path + params).setTimeout(10000); //设置请求超时时间 clietRequest.handler(clientResponse -> {
clietRequest.setTimeout(10000); //如果解析响应还可能超时,那么也必须重设超时时间 context.request().response().setStatusCode(clientResponse.statusCode()); context.request().response().headers().setAll(c |