异步请求CloseableHttpAsyncClient的使用
1、前言 项目有个需求,需要把一些没用影响业务逻辑的http请求改成异步请求,httpclient在4.0后提供新的api CloseableHttpAsyncClient可以使用,记录下使用过程。 2、网络调用类型 (1)传统BIO(Blocking IO) 同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。 (2)NIO(Not-Blocking IO) NIO:同步非阻塞式IO,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。 (3)AIO(NIO.2) 异步非阻塞式IO,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理。 3、CloseableHttpAsyncClient CloseableHttpAsyncClient是apache在4.0后提供AIO操作的api,基本使用如下 1)pom.xml引用如下 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId>