反应堆项目 - 第一部分spring reactor

154 阅读3分钟

阅读时间: 2 分钟

在这篇博客中,我将对spring reactor项目进行概述,它是一个基于反应式规范的反应式库,所以我们开始吧。

简介

Spring框架在第五版中通过project reactor开始支持反应式编程。

Project Reactor是一个完全非阻塞的基础,还包括背压支持。 包括在内。它是Spring生态系统中反应式栈的基础,在Spring WebFlux、Spring Data和Spring Cloud Gateway等项目中都有体现。

项目反应器是Spring生态系统中反应堆的基础。甚至Spring Webflux和其他Spring反应式框架也使用reactor作为核心依赖。

模块

Project reactor由一组模块组成,Reactive Core是实现反应式规范的主要模块。它拥有反应式类型FluxMono和一些帮助转换或处理反应式流的操作符。下面是其他一些反应式模块的列表。

  • Reactor-Test- 这个模块提供一些测试反应式流的工具。
  • Reactor-Extra - 为反应式流的转换提供一些额外的操作符。
  • Reactor-Netty- 基于Netty框架,它提供了非阻塞和背压的客户端和服务器。
  • Reactor-Kafka- 该模块有助于从Kafka发布和消费数据。
  • Reactor-RabbitMQ- 帮助从RabbitMQ发布和消费数据。

反应式规范

反应式规范是每一个反应式库需要遵循的一套规则,以便成为反应式的本质。在反应式规范中,我们有4个反应式库实现的接口,这些接口将为反应式流程相互交谈。

  • 发布者
  • 订阅者
  • 订阅者
  • 处理器

发布者

public interface Publisher<T> {
    public void subscribe(Subscriber<? super T> s);
}

发布者的实现在应用程序中作为数据源,也作为数据发射器。发布者接口只有一个方法,由订阅者用自己的引用作为参数来调用。

订阅者

public interface Subscriber<T> {
    public void onSubscribe(Subscription s);
    public void onNext(T t);
    public void onError(Throwable t);
    public void onComplete();
}

订阅者的实现作为数据接收器。它有4个方法,由发布者实例调用。onSubscribe方法在订阅方法和发布者成功完成时被调用。onNext方法在每次发布者想要向订阅者发送数据时被调用。onError方法在发布者向订阅者发送响应时遇到任何错误时被调用。onComplete方法在发布者成功完成请求时被调用。

订阅

public interface Subscription {
    public void request(long n);
    public void cancel();
}

订阅的实现被用来向发布者请求数据,也可以取消请求。

处理器

public interface Processor<T, R> extends Subscriber<T>, Publisher<R> {
}

处理器接口是发布者和订阅者接口的组合。它拥有两个接口的方法。

这篇文章就写到这里了。另外,如果你有任何反馈或疑问,请在评论中告诉我。另外,如果你喜欢这篇文章,请给我一个大拇指,我将在未来继续为你写这样的博客。继续阅读,继续编码。