用 OKHttp 和 Retrofit 打造稳如磐石的网络请求:连接池与重试机制的实战指南 - 教程
第1章:网络请求的“痛点”与连接池的救赎
在高峰期每次都重新排队买票,效率低得让人抓狂。就是网络请求慢、不稳定,归根结底是资源浪费和失败处理不当。想象一下,每次请求都新建一个 TCP 连接,像OKHttp 的连接池就像个聪明的“票贩子”,它能复用已经建立好的连接,省去反复握手的麻烦。
为什么必须连接池?
TCP 握手耗时:建立一个新连接需要三次握手,耗时几十到几百毫秒,尤其在移动网络下更明显。
资源浪费:频繁创建/销毁连接会增加 CPU 和内存负担。
服务器压力:大量新连接会让后端服务器不堪重负。
OKHttp 默认内置了连接池,最大支持5 个空闲连接,每条连接默认保持5 分钟空闲时间。这些参数听起来简单,但实际应用中得根据业务场景调整,才能发挥最大效能。
连接池的工作原理
OKHttp 的连接池借助 ConnectionPool 类管理 HTTP/HTTPS 连接。它会:
复用连接:优先运用已有的空闲连接,避免重复握手。
清理过期连接:定期检查空闲连接,超过设定时间(如 5 分钟)就关闭。
限制并发:控制同一主机下的最大
浙公网安备 33010602011771号