AWS宣布AWS SDK for Java 2.x中的Common Runtime (CRT) HTTP Client正式可用
AWS最近宣布了AWS SDK for Java 2.x中的Common Runtime (CRT) HTTP Client的正式可用性。这个新的异步客户端提供了更快的SDK启动时间和更小的内存占用,特别适用于Lambda无服务器工作负载。
主要特点
- 异步HTTP客户端:新的AwsCrtAsyncHttpClient是基于Common Runtime库的Java绑定构建的异步HTTP客户端。
- 性能提升:AWS软件工程师Zoe Wang表示,该客户端可以作为默认Netty实现的替代方案,提供更快的SDK启动时间和更小的内存占用,特别是在AWS Lambda中,还能降低P90延迟并增强连接管理。
- 具体改进:在Lambda中,启动延迟最多可减少76%,内存使用最多可减少14%。此外,P90延迟最多可提高9%。
连接管理
- 连接健康管理:AWS CRT HTTP客户端具有连接健康选项,确保不会重用“不健康”的连接。根据用例,可以设置吞吐量阈值来确定连接是否健康。如果连接在配置的时间内低于设定的阈值,客户端将视为不健康并关闭连接。
使用方法
添加依赖:开发者需要在pom.xml文件中添加aws-crt-client依赖。
<dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>aws-crt-client</artifactId> <version>${aws.sdk.version}</version> </dependency>- 切换客户端:可以通过S3AsyncClient.builder()指定,或在JVM启动时设置software.amazon.awssdk.http.async.service.impl属性,或直接在代码中使用客户端构建器。
其他信息
- AWS SDK for Java 2.0:该SDK于2018年发布,包括非阻塞IO、实现HTTP/2协议的事件流API以及可插拔的HTTP实现等功能。默认情况下,SDK包含netty-nio-client依赖,但当使用新的HTTP客户端时,建议从应用程序中移除以减少包大小。
- 版本要求:aws-crt-client从Java 2 SDK的2.20.0版本开始可用。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。