支持非阻塞 + 背压 + 异步 +流处理 的标准
非阻塞:不用说了
背压:
上游快、下游慢,就是说消费者消费速度跟不上生产者生产的速度,消息阻塞过多,逆流而上,进而影响了上游
上游慢、下游快,消费速度>生产速度,导致消费者一直等待,资源浪费
背压就是通过流控解决这种速度差异造成的问题。
异步:将Publisher发布和Subscriber订阅解耦
流处理:所有数据通过流传递
响应式规范提供了4个接口,我们分别来看一下:
Publisher - 生产者
public interface Publisher<T> {
void subscribe(Subscriber<? super T> var1);
}
Subscriber - 订阅者
public interface Subscriber<T> {
void onSubscribe(Subscription var1);
void onNext(T var1);
void onError(Throwable var1);
void onComplete();
}
Subscription - 订阅票据 Subscriber通过Subscription来获取请求数据
public interface Subscription {
void request(long var1);
void cancel();
}
Processor - 处理器
public interface Processor<T, R> extends Subscriber<T>, Publisher<R> {
}