Reactive Streams:异步流处理标准

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

reactive-streams

Reactor是一个基于 JVM 之上的异步应用基础库。为 Java 、Groovy 和其它 JVM 语言提供了构建基于事件和数据驱动应用的抽象库。Reactor 性能优秀,在最新的硬件平台上,使用无阻塞分发器每秒钟可处理 1500 万个事件。

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

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

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

  •  处理潜在的无边界限制的元素
  • 顺序
  • 在组件之间异步传递元素
  • 使用强制性的非堵塞的抗压。

Reactive Streams由以下部分组成:

  • SPI:定义了不同实现组件之间的交互层和互操作性
  • API:定义 Reactive Streams用户使用的类型
  • 技术兼容Kit(TCK):实现标准测试

官方网站:http://www.reactive-streams.org/
开源地址:https://github.com/reactive-streams/reactive-streams-jvm

1 1 收藏

资源整理者简介:王涛

java程序员,极客爱好者 个人主页 · 贡献了12个资源 · 1 ·  


直接登录

推荐关注

按分类快速查找

关于资源导航
  • 伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1439 项工具资源。
    推送伯乐头条热点内容微信号:jobbole 分享干货的技术类微信号:iProgrammer