我使用项目反应器,并使用Flux.flatMapIterable。(我基本上有一个对象A的流;对于每个对象A,我将其平面化为对象B的流,并从中制作一个新的通量。)
我试图理解预取设置的作用。在我的例子中,每个对象A都可以潜在地转换为任意数量的对象B(在0到N之间;N很大)。
我只是想了解:
>
什么是prefetch?它只适用于初始请求吗?(即,如果我将其设置为1,如果项目Reactor发现1太小,它是否足够智能以增加请求大小?)
这与我在这里的情况有关吗?为了保守起见,我考虑将预取设置为1,因为单个a对象有可能被平面映射为大量B对象。
预取将影响发布者在其第一个请求中向反应器请求的项目数。它是一个上限,影响后续请求,当发出75%的预取量时,将触发后续请求,因此不会自动增加。
它通常用于以下场景:消费者请求大量数据,但数据源表现更好,或者可以使用较小的请求进行优化(例如数据库分页等)。
它是否与您的用例相关取决于您的出版商的特点。
来自配置背压1的[文档]
您可能还注意到,一些运算符具有接受名为prefetch的int输入参数的变体。这是另一类修改下游请求的运算符。这些通常是处理内部序列的运算符,从每个传入元素(如平面图)派生一个Publisher。
预取是一种调整对这些内部序列发出的初始请求的方法。如果未指定,这些运算符中的大多数都从需求32开始。
这些运营商通常还实施补充优化:一旦运营商看到25%的预取请求得到满足,它就会从上游重新请求25%。这是一种启发式优化,使这些操作员能够主动预测即将到来的请求。
我想创建一个
问题内容: 下面是代码片段。 有人可以向我解释@符号在Java中的含义吗? 问题答案: 这是一个注释。 注释是元数据的一种形式。它们提供的程序数据不属于程序本身。注释对其注释的代码的操作没有直接影响。 注释确实会影响工具和库对待程序的方式,进而会影响正在运行的程序的语义。可以从源文件,类文件中读取注释,也可以在运行时从中读取注释。
问题内容: 异步在Ajax中意味着什么?以及Ajax如何知道何时在不进行服务器轮询的情况下提取数据? 问题答案: 异步意味着脚本将向服务器发送请求,并继续执行它而无需等待答复。收到答复后,立即触发浏览器事件,该事件进而允许脚本执行关联的操作。 Ajax知道何时从服务器提取数据,因为您告诉它何时进行处理。
问题内容: 我对gulp比较陌生,我想知道gulp任务到底是做什么的?我已经搜集到它通常在a 和after之后运行,但是它还必须更多。我一直无法在网上或gulp的文档中找到任何东西,我真的很想了解我在使用什么。 编辑我发现了这个,但是在解释它方面做得很差 问题答案: 从Node文档中: https://nodejs.org/api/stream.html#stream_visible_pipe_d
问题内容: 我正在学习python,但不确定是否理解以下语句:“该函数(包括其名称)可以捕获 我们对问题的看法或抽象 。” 这是我不理解编程含义的粗体部分。引用来自http://www.openbookproject.net/thinkcs/python/english3e/functions.html 像计算机科学家一样思考,第3版。 谢谢 ! 问题答案: 抽象是所有计算机科学中的核心概念。没有
我正在学习python,我不确定是否理解以下语句:“函数(包括它的名字)可以捕捉我们对问题的心理组块或抽象。” 我不理解粗体部分在编程方面的含义。引用自http://www.openbookproject.net/thinkcs/python/english3e/functions.html 如何像计算机科学家一样思考,第3版。 谢谢你!