美文网首页响应式系统和架构
响应流处理标准Java实现

响应流处理标准Java实现

作者: LeonalGU | 来源:发表于2017-11-03 18:07 被阅读0次

响应式流处理为Java提供了一个通用的API接口。响应式流处理API有4个接口需要理解,分别是Publisher,Subscriber,Subscription和Processor。

Publisher:提供无边界的数据序列,可以依据订阅者要求发布给订阅者。

public interface Publisher {

public void subscribe(Subscriber s);

}

Subscriber:订阅数据和获得消息,需要实现订阅通知,数据通知,出错处理,完成处理。

public interface Subscriber {

    public void onSubscribe(Subscription s);

    public void onNext(T t);

    public void onError(Throwable t);

    public void onComplete();

}

Subscription:代表一个订阅,绑定订阅者和发布者,订阅者可以对订阅做控制(请求发送和取消)。

public interface Subscription {

    public void request(long n);

    public void cancel();

}

Processor:处理器,即是个订阅者又是个发布者,内部对数据进行处理后再次发布。

public interface Processor extends Subscriber, Publisher {

}

响应流标准已经有一些实现遵循或兼容标准,例如下面的一些库和框架:

  • RxJava2.0,
  • Reactor 3.0(需要Java 8),
  • Akka Streams,
  • Ratpack内置库(也可用RxJava或Reactor替代),
  • Vert.x内置库(也可用RxJava替代),
  • Spring Framework 5(内置Reactor 3.0)

Java 8中响应流接口是独立的包,可以用Maven获得。

<dependency>
   <groupId>org.reactivestreams</groupId>
   <artifactId>reactive-streams</artifactId>
   <version>1.0.0</version>
</dependency>

Java 9中已经内置的响应流接口,在Flow包下。Flow包还没有提供对背压的支持,如果需要,可以使用RxJava包(2.0以上)。

没有响应流标准以前,响应库不可以兼容,有了响应流标准,很容易使用和切换不同的响应流功能。例如MongoDB提供了符合标准的响应流驱动 ,你可以用最新的Reactor或RxJava消费来自MongoDB的数据。

参考资料:
https://dzone.com/articles/what-are-reactive-streams-in-java
https://community.oracle.com/docs/DOC-1006738

相关文章

  • 响应流处理标准Java实现

    响应式流处理为Java提供了一个通用的API接口。响应式流处理API有4个接口需要理解,分别是Publisher,...

  • Java 9 Reactive Streams

    Java 9Reactive Streams允许我们实现非阻塞异步流处理。这是将响应式编程模型应用于核心java编...

  • JVM平台上的响应式流(Reactive Streams)规范

    Reactive Streams 响应式流是一个倡议,用来为具有非阻塞后压的异步流处理提供一个标准。大家努力的目标...

  • 深入理解计算机之异常

    异常 异常是异常控制流的一种形式,部分有硬件实现,部分由操作系统实现,是控制流的一种突变,用以响应处理器某些状态变...

  • IO系统

    IO流简单来说就是输入流和输出流。,IO流主要是用来处理设备之间的数据传输,Java对于数据的操作都是通过流实现,...

  • IO流

    # Java 流式输入 输出原理 # Java 流的分类 # 输入 输出 流 类 # 常见的节点流 和 处理流 #...

  • 07-Java序列化面试题(10题)

    1、什么是java序列化,如何实现java序列化? 序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内...

  • Java IO中的其他流的使用

    本文主要介绍Java IO中的其他几种流: 标准输入、输出流 打印流 数据流 对象流 随机存取文件流 标准输入、输...

  • JAVA多线程读写文件如何做到线程安全?(文件锁,FileCha

    @[toc] NIO提升性能 在JAVA的标准I/O中,提供了基于流的I/O实现,即InputStream和Out...

  • 标准IO流异常处理

    标准IO流异常处理 代码块

网友评论

    本文标题:响应流处理标准Java实现

    本文链接:https://www.haomeiwen.com/subject/grtxmxtx.html