苹果开源了 JVM 网络框架 ServiceTalk:改善 Netty 底层抽象

苹果开源了 JVM 网络框架 ServiceTalk
,该框架在 Netty
之上提供了通用和可扩展的网络抽象。ServiceTalk 的目的是改善 Netty 所提供的底层抽象,比如线程池和可用性。ServiceTalk 为常用的协议提供了更高层级、更具针对性的 API,这些协议包括 HTTP/1.x、HTTP/2.0 和 gRPC,它还提供了一致的网络栈和特性集,包括客户端负载均衡和服务发现集成。

ServiceTalk 的设计目标是支持基于反应式流(Reactive Streams)的不同编程范式,包括各种阻塞模式,并且具有强大的工具跨越同步和异步 API 之间的边界。这样的话,就能让开发人员缓解异步控制流的复杂性,在应用中,目前这并不是必需的。 反应式流操作符
的原生实现主要聚焦在限制内存使用、横切性的特性(比如 AsyncContext
阻塞的默认安全性
)以及利用 反应式流规范
中的规则来优化服务器端用例。

ServiceTalk 开源的目标是提供构建块以便于接收 Java 社区的贡献。借助苹果在 Java 社区预先建立的关系,他们希望通过 ServiceTalk 建立一个类似的社区。苹果告诉 InfoQ,在 ServiceTalk 开源的短时间内, Reactor 项目
、Micronaut、 RxJava
、gRPC 和 Vert.x
对它的兴趣在不断增长。

Apple 还告诉 InfoQ, Java 社区在以下方面有很多机会可以为 ServiceTalk 做出 贡献
:与 Spring Boot
、Micronaut 和 Reactor 集成;对现有和新协议的增强;通过可插拔的 ServiceDiscoverer
API 集成服务发现功能;实现新的反应流操作符;客户端 负载均衡领域
正在进行中的工作。

开发人员可以通过研究异步和阻塞环境的 HTTP
gRPC
示例来入门 ServiceTalk。

原文链接:

Apple Open Sources ServiceTalk to the Java Community