Reactive Streams

Reactive Streams开源项目提供一个非堵塞的异步流处理的抗压标准。

流数据特点是“活”的,其大小是无法预先确定的,在异步系统中需要特别关注。最突出的问题是,资源消耗需要仔细控制,使得如果有一个快速的数据源不至于压倒流的目的地(如同自来水厂水压突然增大,会冲垮水管末端的居民家的水龙头)。异步对于激活计算资源的并行使用是必要的,计算资源包括:多主机或一台机器内多个CPU核心。

Reactive Streams目标是管制流数据在跨越异步边界进行流数据交换,可以认为是将元素传递到另一个线程或线程池,同时确保在接收端不是被迫缓冲任意数量的数据。换句话说,抗压是该模型重要组成部分,设置协调线程之间的队列大小是有限制的,如果不同异步模型之间的通信是同步的将削弱异步的好处。因此必须采取谨慎措施,强制完全无阻塞的反应流能在系统的各个方面异步实施。

这个规范的目标是建立一个规则,使得很多流反应框架能够遵守规则标准,这样才能顺利实现互操作,才能发挥整个流应用上的优点。

Reactive Streams是一个基于JVM的面向流的库包的标准和规范:

1. 处理潜在的无边界限制的元素

2.顺序

3.在组件之间异步传递元素

4.使用强制性的非堵塞的抗压。

RS由以下部分组成:

SPI:定义了不同实现组件之间的交互层和互操作性

API:定义 Reactive Streams用户使用的类型

技术兼容Kit(TCK):实现的标准测试。

https://github.com/reactive-streams/reactive-streams-jvm/tree/v1.0.0

http://www.reactive-streams.org/

http://www.jdon.com/46306

======END======

时间: 2024-08-06 20:03:51

Reactive Streams的相关文章

Spring Boot Reactive Streams

1 响应式编程规范 目标:provide a standard for asynchronous stream processing with non-blocking backpressure http://www.reactive-streams.org/ https://github.com/reactive-streams/reactive-streams-jvm https://spring.io/blog/2016/02/09/reactive-spring A key ingred

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

// Reactive Streams // 响应式流是一个倡议,用来为具有非阻塞后压的异步流处理提供一个标准.大家努力的目标集中在运行时环境(JVM和JavaScript)和网络协议上. 注:响应式流其实就是一个规范,本文讲解的正是这个规范,且这个规范已经被引入到JDK9里了. 后压:就是下游出现了问题,得不到解决时,这个问题就会逆流而上,继而影响上游. 如果一个路口红绿灯坏了造成堵车,如果不管的话,用不了太长时间,车就会堵到上一个路口,如果再不管的话,整条路都会被赌满. // JDK9里的j

FunDA(6)- Reactive Streams:Play with Iteratees、Enumerator and Enumeratees

在上一节我们介绍了Iteratee.它的功能是消耗从一些数据源推送过来的数据元素,不同的数据消耗方式代表了不同功能的Iteratee.所谓的数据源就是我们这节要讨论的Enumerator.Enumerator是一种数据源:它会根据下游数据消耗方(Iteratee)的具体状态主动向下推送数据元素.我们已经讨论过Iteratee的状态Step类型: trait Step[E,+A] case class Done[+A,E](a: A, remain: Input[E]) extends Step[

oracle 19c jdbc之Reactive Streams Ingestion (RSI) Library

jdbc实现直接路径加载 https://www.salvis.com/blog/2019/02/17/memoptimized-rowstore-in-oracle-database-19c/ 目前oracle 19c已经开放下载,对应的jdbc也已经出来,有需求的同学可以开测了,相对insert /*+ append_values*/ + jdbc batch性能最大可能可以提高30%(OCI的经验). 原文地址:https://www.cnblogs.com/zhjh256/p/10870

Akka Stream文档翻译:Quick Start Guide: Reactive Tweets

Quick Start Guide: Reactive Tweets 快速入门指南: Reactive Tweets (reactive tweets 大概可以理解为“响应式推文”,在此可以测试下GFW是否还在正常工作 Twitter) A typical use case for stream processing is consuming a live stream of data that we want to extract or aggregate some other data fr

Reactive 简介

1. 概念 Reactive 非常适合低延迟.高吞吐量的工作负载. Reactive Processing 是一种范式(规范),它使开发人员能够构建非阻塞的.异步的应用程序,这些应用程序能够处理背压(流控制) Reactive Streams 为无阻塞背压的异步流处理提供标准. Reactor 是基于Reactive Streams规范的第四代响应库,用于在JVM上构建非阻塞的应用程序. Project Reactor 是一个完全无阻塞的基础,其中包括背压支持.它是Spring生态系统中的响应式

Java资源大全中文版(Awesome最新版)

目录 业务流程管理套件 字节码操作 集群管理 代码分析 编译器生成工具 构建工具 外部配置工具 约束满足问题求解程序 持续集成 CSV解析 数据库 数据结构 时间日期工具库 依赖注入 开发流程增强工具 分布式应用 分布式数据库 发布 文档处理工具 函数式编程 游戏开发 GUI 高性能计算 IDE 图像处理 JSON JVM与JDK 基于JVM的语言 日志 机器学习 消息传递 杂项 应用监控工具 原生开发库 自然语言处理 网络 ORM PDF 性能分析 响应式开发库 REST框架 科学计算与分析

Spring XD 1.1 M2 and 1.0.3 released---support kafka

官方地址:http://spring.io/blog/2014/12/23/spring-xd-1-1-m2-and-1-0-3-released On behalf of the Spring XD team, I am very pleased to announce the second milestone release of Spring XD 1.1 and the 1.0.3 maintenance release. Download Links:* 1.1.0.M2 RELEAS

awesome-java

Awesome Java A curated list of awesome Java frameworks, libraries and software. Awesome Java Ancients Bean Mapping Build Bytecode Manipulation Cluster Management Code Analysis Code Coverage Compiler-compiler Configuration Constraint Satisfaction Prob