什么是 Reactor
Reactor 是基于 Reactive Streams 规范的第四代响应式库,
用于在 JVM 上构建非阻塞应用程序
― Project Reactor
只用来发布事件的话比较简单。废话不多说,直接看代码。
事件类
创建一个事件类用于保存数据。
1
| record KeyEvent(int key) {}
|
发布、订阅
创建 Sinks.Many
和 Flux
:
1
2
| public static final Sinks.Many<KeyEvent> PUBLISHER = Sinks.many().multicast().onBackpressureBuffer();
public static final Flux<KeyEvent> SUBSCRIBER = PUBLISHER.asFlux();
|
发布事件:
1
2
3
| void publish() {
PUBLISHER.tryEmitNext(new KeyEvent(1));
}
|
订阅事件:
1
2
3
4
5
6
7
8
9
10
| void subscribe() {
// lambda 方式
SUBSCRIBER.subscribe(e -> System.out.println(e.key()));
// 方法引用
SUBSCRIBER.subscribe(this::onKey);
}
void onKey(KeyEvent e) {
System.out.println(e.key());
}
|