
Reactor
文章平均质量分 92
ywb201314
兵法有言,知己知彼,百战不殆
展开
-
Project Reactor 核心原理解析
一、开篇本文将解析 Spring 的 Reactor 项目的源码。主要目的是让自己能深入理解 Reactor 这个项目,以及 Spring 5 和 Spring Boot 2。Project Reactor 项目地址:https://github.com/reactorReactor 项目主要包含 Reactor Core 和 Reactor Netty 两部分。Reactor Core 实现了反应式编程的核心功能,Reactor Netty 则是 Spring WebFlux 等技术的基础。本转载 2021-03-30 14:56:01 · 611 阅读 · 0 评论 -
Reactor之发射器(Flux、Mono)转换操作函数
Reactor 发射器转换操作函数concatWithValues@SafeVarargspublic final Flux<T> concatWithValues(T... values)将值连接到Flux的末尾。imageconcatpublic static <T> Flux<T> concat(Iterable<? extends Publisher<? extends T>> sources..转载 2020-05-21 17:06:41 · 1858 阅读 · 0 评论 -
(4)Reactor 3快速上手——响应式Spring的道法术器
本系列其他文章见:《响应式Spring的道法术器》。前情提要:响应式流 | lambda与函数式1.3.2 ReactorReactor与Spring是兄弟项目,侧重于Server端的响应式编程,主要 artifact 是 reactor-core,这是一个基于 Java 8 的实现了响应式流规范 (Reactive Streams specification)的响应式库。本文对Reactor的介绍以基本的概念和简单的使用为主,深度以能够满足基本的Spring WebFlux使用为准。在下一章,转载 2020-05-21 16:43:10 · 511 阅读 · 1 评论 -
附2:Reactor 3 之选择合适的操作符——响应式Spring的道法术器
本系列文章索引《响应式Spring的道法术器》前情提要Reactor Operators本节的内容来自我翻译的Reactor 3 参考文档——如何选择操作符。由于部分朋友打开github.io网速比较慢或上不去,贴出来方便大家查阅。如果一个操作符是专属于Flux或Mono的,那么会给它注明前缀。公共的操作符没有前缀。如果一个具体的用例涉及多个操作符的组合,这里以方法调用的方式展现,会以一个点(.)开头,并将参数置于圆括号内,比如:.methodCall(parameter)。...转载 2020-05-15 18:04:22 · 1337 阅读 · 0 评论 -
详解 Webflux 中的 onErrorResume 和 onErrorReturn
webflux 并不算一门新技术,它出自 Spring,所以 Spring 中的一些特性它都有,包括 SpringMVC 中的一些注解它也可以沿用。没看过 webflux 教程的,可以参考我前面关于 webflux 教程的一些文章。本文我们来学习 webflux 中两个比较特独的方法 onErrorResume 和 onErrorReturn。先回忆一下,我们在 SpringMVC 或者 SpringBoot 中常用的处理异常的方式有:@RestControllerAdvice、@ExceptionHa转载 2020-05-15 15:55:24 · 8998 阅读 · 0 评论 -
Mono和Flux的用法详解
WebFlux的Flux和Mono用法Fluxjust可以指定序列中包含的全部元素。创建出来的 Flux 序列在发布这些元素之后会自动结束。fromArray(),fromIterable()和 fromStream()可以从一个数组、Iterable 对象或 Stream 对象中创建 Flux 对象。empty()创建一个不包含任何元素,只发布结束消息的序列,在响应式编程中,流的传递是基于元素的,empty表示没有任何元素,所以不会进行后续传递,需要用switchIfEmpty等处理er转载 2020-05-15 15:45:16 · 2776 阅读 · 0 评论 -
反应式编程之Mono.defer
本文基于project reactor,,reactor-bom版本为Dysprosium-SR4,project reactor数据源大致可以分为两类:恶汉型跟懒汉型,mono defer方法创建数据源属于懒汉型,与Mono.just等创建数据源则是恶汉型,下面看一个例子: @Test public void defer(){ //声明阶段创建DeferClass对象 Mono<Date> m1 = Mono.just...转载 2020-05-15 13:35:08 · 1322 阅读 · 0 评论 -
countDownLatch
1.背景:countDownLatch是在java1.5被引入,跟它一起被引入的工具类还有CyclicBarrier、Semaphore、concurrentHashMap和BlockingQueue。 存在于java.util.cucurrent包下。2.概念countDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行。 是通过一个计数器来实现的,计数器的初始值是线...转载 2019-12-07 13:55:17 · 132 阅读 · 0 评论 -
响应式编程中的Flux和Mono
响应式编程介绍反应式编程来源于数据流和变化的传播,意味着由底层的执行模型负责通过数据流来自动传播变化。比如求值一个简单的表达式 c=a+b,当 a 或者 b 的值发生变化时,传统的编程范式需要对 a+b 进行重新计算来得到 c 的值。如果使用反应式编程,当 a 或者 b 的值发生变化时,c 的值会自动更新。反应式编程最早由 .NET 平台上的 Reactive Extensions (Rx) 库...转载 2019-12-04 20:20:10 · 622 阅读 · 0 评论 -
Mono入门应用
前言Flux 和 Mono 是 Reactor 中的两个基本概念。Flux 表示的是包含 0 到 N 个元素的异步序列。在该序列中可以包含三种不同类型的消息通知:正常的包含元素的消息、序列结束的消息和序列出错的消息。当消息通知产生时,订阅者中对应的方法onNext(), onComplete()和 onError()会被调用。Mono 表示的是包含 0 或者 1 个元素的异步序列。该序列中同样可...转载 2019-12-04 19:16:03 · 1932 阅读 · 0 评论 -
响应式编程 Reactor 学习小记
从响应式编程说起响应式编程是一种关注于数据流(data streams)和变化传递(propagation of change)的异步编程方式。 这意味着它可以用既有的编程语言表达静态(如数组)或动态(如事件源)的数据流。在响应式编程方面,微软跨出了第一步,它在 .NET 生态中创建了响应式扩展库(Reactive Extensions library, Rx)。接着 RxJava 在 J...转载 2019-09-27 15:57:07 · 280 阅读 · 0 评论 -
reactor3 源码分析
文章目录响应式编程系列文章概述本文需要知识点观察者模式lambda表达式reactor源码分析响应式编程系列文章响应式编程规范java设计模式之 观察者模式reactor3 源码分析java9 响应式编程支持概述Reactor 用于创建高效的响应式系统。Reactor 是一个用于JVM的完全非阻塞的响应式编程框架,具备高效的需求管理(即对 “背压(backpressure...转载 2019-08-15 15:47:06 · 237 阅读 · 0 评论 -
Spring5中Reactor编程的Mono与Flux类源码解读
Spring5的函数式编程使用了ProjectReactor工程的类,使用最为多的就是Mono和Flux类型,其中Mono是针对0到1个元素进行操作,Flux是针对多个元素进行操作。要使用这两个类前提是自己要有jdk8,Lambda,函数式编程的基础,否则请先学习了以上知识再来接触Spring5的Mono和FLux。我们针对Mono类的一行代码,来进行源码分析与讲解。代码如下:Mono.j...转载 2019-08-15 15:44:02 · 806 阅读 · 0 评论 -
Spring Reactor 入门与实践
适合阅读的人群:本文适合对 Spring、Netty 等框架,以及 Java 8 的 Lambda、Stream 等特性有基本认识,希望了解 Spring 5 的反应式编程特性的技术人员阅读。一、前言最近几年,随着 Node.js、Golang 等新技术、新语言的出现,Java 的服务器端开发语言老大的地位受到了不小的挑战。虽然,Java 的市场份额依旧很大,短时间内也不会改变,但 Jav...转载 2019-08-15 15:40:48 · 315 阅读 · 0 评论