【问题标题】:Reactor - Overflow Strategy IGNORE vs ERRORReactor - 溢出策略 IGNORE 与 ERROR
【发布时间】:2019-12-12 15:30:38
【问题描述】:

下面这2个溢出策略的意义是什么?例外情况不同。但是在这两种情况下,当订阅者跟不上时,他们都会收到错误调用通知。 在这种情况下,我们应该选择一个而不是另一个!

    FluxSink.OverflowStrategy.ERROR
    FluxSink.OverflowStrategy.IGNORE

我从文档中找到了这个。但没有提供更多信息。

  • IGNORE 完全忽略下游背压请求。当下游队列满时,这可能会产生 IllegalStateException。

  • 当下游无法跟上时发出 IllegalStateException 错误信号。

downstream cannot keep up 听起来很像queue gets full - 所以对我来说两者看起来一样。

【问题讨论】:

    标签: project-reactor


    【解决方案1】:

    IGNORE 将忽略来自下游的请求并简单地推送项目。
    ERROR 将检查请求,如果没有足够的需求则失败。

    【讨论】:

    • 这根本没有澄清。有没有带解释的代码示例
    • 区别很微妙:像flatMap 这样的一些操作符在过度生产时存储无关元素的容量可能很小。使用IGNORE,如果他们的消费者只是短暂地跟不上,他们将有机会“恢复”,但否则他们仍然会迅速传播错误。而对于ERROR,无论如何只要有一个未请求的元素进入,就很难停止。
    • 感谢西蒙的澄清
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2018-09-08
    • 2014-11-01
    • 1970-01-01
    • 2020-09-14
    相关资源
    最近更新 更多