这几天在看异步的 http 客户端(java),有一点不解。
- 先讲讲同步的 http 客户端,如 okhttp httpclient 每个请求堵塞一个线程,超过客户端的 http 连接池大小后,继续请求,会堵塞住,直到有连接可用,这很好理解。
- 异步的 http 客户端如 apache async httpclient 内部使用的 java nio,每次发送请求时都是非堵塞的,需要传递回掉函数处理 http response,但是即使是 nio 大小也不是无限的,如果下游返回太慢,大量的请求注册到 nio 里,到达极限后会怎么样呢,会堵塞吗?如果内部有队列,那队列满了会堵塞吗?
