Reactive Programming,中文称反应式编程,是一种高性能应用的编程方式。其最早是由微软提出并引入到 .NET 平台中,随后 ES6 也引入了类似的技术。在 Java 平台上,较早采用反应式编程技术的是 Netflix 公司开源的 RxJava 框架。现在大家比较熟知的 Hystrix 就是以 RxJava 为基础开发的
Reactor 的主要模块
Reactor 框架主要有两个主要的模块:reactor-core 和 reactor-ipc。前者主要负责 Reactive Programming 相关的核心 API 的实现,后者负责高性能网络通信的实现,目前是基于 Netty 实现的
++++++++++++++++++++++++++++++++++++++++++
Reactor的核心类 Mono和Flux
一、创建Mono和Flux
还可以通过异步调用的callback方法,来创建mono
Mono.create(sink -> {
ListenableFuture<ResponseEntity<String>> entity = asyncRestTemplate.getForEntity(url, String.class);
entity.addCallback(new ListenableFutureCallback<ResponseEntity<String>>() {
public void onFailure(Throwable ex) {
sink.error(ex);
}
public void onSuccess(ResponseEntity<String> result) {
sink.success(result.getBody());
}
});
});