走在前沿
VMware 提供培训和认证,以加速您的进步。
了解更多哇哦!我们刚刚发布了 Spring Framework 5.2,其中包含新的 RSocket 支持,并且大量项目在随后的……*一天*中也相继发布了!我预计很快就会看到更多项目发布,紧随其后的是 Spring Boot!当然,下周是 Spring 界每一年中最重要的一个星期:SpringOne Platform 2019!
我迫不及待地想去参加,但首先我要去台北参加 JCCConf。有很多事情要处理,让我们直接开始吧!
响应式编程和 Loom 旨在实现不同的目标。响应式编程完全关于消息传递和事件,Loom 关于调度。
使用 Loom,流式数据源(发布/订阅、更改流、实时查询)的消费仍然和现在一样丑陋(监听器、消息容器)。因此,基本上,你的代码保持不变。你仍然需要多次服务器往返甚至查询执行(“分页”)来获取大量数据,并且延迟行为保持不变,因为大多数 API 返回一个列表。你的代码仍然需要等到响应到达,因为当今的命令式驱动程序没有背压感知,并且无法在你处理之前收到的块时请求数据。
使用 Reactive Streams,任何数据流(发布/订阅、更改流、实时查询)都只是一个 Publisher
。消费无界数据源与消费具有有限结果数的查询看起来没有任何区别。
一个合适的、非阻塞的 Reactive Streams 实现具有改进的延迟行为,因为 Reactive Streams 数据库驱动程序可以从游标中预取数据,因为它具有背压感知能力。流不需要为了获取大量数据而进行分页,因为每个元素都是单独发出的,并且首先不需要将数据聚合到列表中。通过设计,你可以获得更好的内存和延迟特性。