Java对Reactor规范实现框架有哪些
- Reactor 规范的定义
在 Java 领域,Reactor 规范通常指 Reactive Streams 规范(JSR-341 没有正式落地,但行业以 Reactive Streams 为准),它定义了一套非阻塞背压(backpressure)的异步流处理标准。
Reactive Streams 接口:
java
运行
public interface Publisher{
void subscribe(Subscriber<? super T> s);
}
public interface Subscriber
void onSubscribe(Subscription s);
void onNext(T t);
void onError(Throwable t);
void onComplete();
}
public interface Subscription {
void request(long n);
void cancel();
}
任何实现了这组接口的框架,都可以称为 Reactor / 响应式流规范的实现。
2. Java 中主要的实现框架
以下框架都完整实现了 Reactive Streams 规范:
(1)Project Reactor(Spring 生态首选)
版本:Reactor Core 3.x
特点:
Spring WebFlux、Spring Cloud Gateway 默认响应式库
提供 Flux
完全支持背压
基于 Reactive Streams API
官网:https://projectreactor.io/
(2)RxJava
版本:RxJava 2.x / 3.x
特点:
早期最流行的响应式库之一
提供 Flowable(支持背压)、Observable(不支持背压)等类型
RxJava 2+ 完全实现了 Reactive Streams 接口
官网:https://github.com/ReactiveX/RxJava
(3)Akka Streams
特点:
基于 Actor 模型
专注于高吞吐、低延迟的流处理
支持背压和异步处理
官网:https://akka.io/docs/
(4)Ratpack
特点:
轻量级异步 Web 框架
内部使用 Reactive Streams 处理请求流
官网:https://ratpack.io/
(5)Vert.x
特点:
多语言支持的异步应用框架
通过 VertxRxJava 或 VertxReactor 模块支持响应式流
官网:https://vertx.io/
(6)Java 原生 Flow API(Java 9+)
特点:
JDK 内置的 Reactive Streams 实现(java.util.concurrent.Flow)
只提供接口,需要自己写 Publisher/Subscriber
常用于构建自定义响应式组件
3. 总结对比
框架 主要特点 适用场景
Project Reactor Spring 生态集成好,API 简洁 WebFlux、微服务、响应式数据访问
RxJava 操作符丰富,社区庞大 复杂事件流处理、跨平台项目
Akka Streams 基于 Actor,高吞吐流处理 分布式流处理系统
Ratpack 轻量 Web + 响应式 高性能 API 服务
Vert.x 多语言、高并发 实时应用、微服务
Java Flow API JDK 内置,接口级 自定义响应式组件