苹果开源了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。
原文链接:
Babel 7.7 Released With Improved TypeScript Support, Top-Level Await and More
领取专属 10元无门槛券
私享最新 技术干货