OKhttpClient 连接池优化
2021/6/25 23:56:53
本文主要是介绍OKhttpClient 连接池优化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
刚开始使用的是这种方式连接请求:
for(int i = 0;i<= 100000000;i++){
val request = Web3j.build(new HttpService(address)).ethGetBlockByNumber(defaultBlockParameter, true) }
跟踪源码发现HttpService中使用的是Okhttp的连接池,Build的初始化代码如下:
也就是说,在每次创建一个新的httpService时,都创建一个数据库连接池,导致服务端的连接被撑爆了。
经过优化后使用如下方式,将复用ConnectionPool:
val connectionPool:ConnectionPool = new ConnectionPool(1500,5L, TimeUnit.MINUTES)
for(int i = 0;i<= 100000000;i++){ val httpService = new HttpService(address,getHttpClient(connectionPool),false) val request = Web3j.build(httpService).ethGetBlockByNumber(defaultBlockParameter, true) //业务代码 }
//复用连接池 private def getHttpClient(pool:ConnectionPool):OkHttpClient = { new OkHttpClient().newBuilder().connectionPool(pool).build() }
参考:https://www.cnblogs.com/greyzeng/p/14148675.html
这篇关于OKhttpClient 连接池优化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-14深入理解 ECMAScript 2024 新特性:Promise.withResolvers
- 2025-01-13SRM vs SCM:企业管理中的差异战略与实践
- 2025-01-12深入理解 ECMAScript 2024 新特性:Map.groupBy() 分组操作
- 2025-01-11国产医疗级心电ECG采集处理模块
- 2025-01-10Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”