每次请求都 new 一个客户端,连接池就等于白建,每次都要重做握手,压测时差距很明显。
客户端全局只保留一个实例,底层连接池才能复用,用完不要关,进程退出时统一释放。
顺手把连接数和超时配上,默认值往往偏小,并发高时请求会堆在队列里干等。
// 全局单例,别在方法里 new
private static final HttpClient CLIENT = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(3))
.executor(Executors.newFixedThreadPool(8))
.build();
THE END






暂无评论内容