苹果开源了 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
评论 1 条评论