开源 分享 更优秀的输出,开源并向大家推荐 besthttp(NIO-HTTP)
NIO-HTTP“三不” 特性:
1. 不过分封装
对原有使用apache httpclient/httpasyncclient 的升级友好;不提倡过分封装使得使用隔阂
2. 不只是NIO
NIO 网络交互模式结合异步并发编程组件和内存优化组件,使得更快不仅来源于网络模型
而是得益于编程模型+IO模型+内存模型+线程模型的组合,使得更快伴随更稳定
3. 不仅是交互(HTTP)
可以单独使用Callback 进行并发编程;单独使用 buffer 优化内存控制或者使用直接内存
修复了apache httpclient/httpasyncclient 使用中的一些缺陷和限制,并作为HTTP 交互更优质的方案,可以升级服务内存的网络交互,也可以对feign,euraka,oss-client 作定制优化。我知道的如网易对微服务组件的优化就是如此。nio-http就是这些场景的轻量级优化方案。
初步的实验验证,初步使用nio-http对上传下载的场景优化,10倍+效率提升。
基础是什么:
-
HTTP 基础API
-
复用IO 模型
-
轻量内存回收系统
-
轻量异步编程框架
还能怎么用:
-
单独使用NIO-HTTP
-
高效访问
-
定制其他组件的能力 如feign
-
单独使用内存回收系统
-
单独使用异步编程框架
-
复合使用框架 开发更优越的HTTP流处理方案
-
批量下载
完善/修复 AsyncHttpClient :
- 全面性
1. 无法发送ZIP形式等文件【0.1.10-beta】
- 兼容性
兼容httpmine4.3 与 httpmime4.5 【0.1.13-beta】
- 健壮性
底层缺陷致AsyncHttpClient 奔溃不可用时再次拉起 【0.1.15-release】
哪里获取:
推广连接:https://blog.csdn.net/nuist_nuist/article/details/120331957
代码库地址:GitHub - nixiantongxue/nio-http
maven 坐标:
<dependency>
<groupId>io.github.nixiantongxue</groupId>
<artifactId>nio-http</artifactId>
<version>0.1.23-release</version>
</dependency>