我需要从Reactor项目中解释这两种方法
文档链接
准备一个可连接的通量,该通量共享该通量序列,并以背压感知的方式向订户发送值。
ConnectableFlux<T> publish()
和
准备一个可连接的通量,该通量共享该通量序列,并以背压感知的方式向订户发送值。
ConnectableFlux<T> publish(int prefetch)
大理石图对两者都是一样的。什么是int prefinch
参数?
我运行了这些例子,结果是一样的
public static void publish() throws InterruptedException {
Flux fl = Flux.just(1, 2, 3, 4, 5, 6)
.delayElements(Duration.ofSeconds(1))
.publish()
.autoConnect();
fl.subscribe(printing);
Thread.sleep(4000);
fl.subscribe(printing);
}
public static void publishWithPrefetch() throws InterruptedException {
Flux fl = Flux.just(1, 2, 3, 4, 5, 6)
.delayElements(Duration.ofSeconds(1))
.publish(2)
.autoConnect();
fl.subscribe(printing);
Thread.sleep(4000);
fl.subscribe(printing);
}
您的两个文档链接都是相同的目标。
预取允许您一次获得更多结果,在管理结果时允许某种缓冲。不管怎样,最终你还是会得到同样的结果;使用一种或另一种方法更像是一个效率/性能问题。
在Reactor Netty中,当通过向TCP通道发送数据时,任何发布服务器都可以工作。但是,如果不是简单的即时而是使用带有延迟元素的更复杂的flux,那么它就会停止正常工作。例如,如果我们使用这个hello world TCP echo服务器,它将按照预期工作: 但是,如果我们将更改为 那么我们将期望对于每一个接收到的项目,都将产生一个延迟一秒的输出。 但是,服务器的行为方式是,如果它在间隔期间
我使用publishOn和subscribeOn的流量相同,如下所示: 虽然,当我使用两者时,日志中不会打印任何内容。但是当我只使用publishOn时,我得到了以下信息日志: publishOn比Subscribeon更受推荐吗?或者它比subscribeon有更多的偏好?两者之间的区别是什么,什么时候使用哪个?
我是项目Reactor或反应式编程的新手,所以我可能做错了什么。我正在努力构建一个执行以下操作的流程: 给定类实体: 从DB读取实体(
假设我有一个具有方法的存储库,该方法返回的,其中是一个表示美国状态的类,它有两个字段(带有getter/setters):和。 我想获得Flux中所有的填充字段之和。我从Iterable创建了一个Flux,如下所示: 我有我的通量,但我不知道一个好的方法来总结它的价值。我试过 然而,编译器说total“应该是最终的或有效的最终的”。添加显然不会起作用,因为我正在尝试添加。 我如何对通量进行求和(或
使用阻塞运算符,我可以这样做:
我正在使用Flux构建我的反应式管道。在管道中,我需要调用3个不同的外部系统REST API,它们对访问速率非常严格。如果我超过每秒速率阈值,我将会受到指数限制。每个系统都有自己的阈值。 我正在使用Spring WebClient进行REST API调用;在3个API中,2个是GET,1个是POST。 在我的反应器管道中,WebClient被包装在平面图中以执行API调用,如下代码所示: 问题是,