【问题标题】:How does Apache Apex handle back pressure?Apache Apex 如何处理背压?
【发布时间】:2016-04-22 23:33:29
【问题描述】:

从 users@apex.incubator.apache.org 转发

Apex 利用缓冲服务器来提供背压。缓冲服务器如何在应用程序崩溃后幸存下来?如果缓冲服务器本身死了怎么办? Apex 能否保证在缓冲服务器恢复后,下游运营商最终会赶上上游运营商?

【问题讨论】:

    标签: apache-apex


    【解决方案1】:

    缓冲服务器是 Apex 平台中的一种发布-订阅机制,用于在运营商之间传输数据。缓冲服务器始终与上游操作员位于同一个容器中(每个容器一个缓冲服务器,与容器中的操作员数量无关);上游算子的输出被写入缓冲服务器。当前操作员在连接流时从上游操作员的缓冲服务器订阅。

    因此,如果操作员失败,上游操作员的缓冲服务器将具有所需的数据状态,直到到达公共检查点。如果上游算子失败,其上游算子的缓冲服务器有数据状态等。最后,如果输入算子失败,没有上游缓冲服务器,那么输入算子负责重放数据状态。根据外部系统,输入操作员要么依赖外部系统进行回放,要么自己维护数据状态,直到到达一个公共检查点。

    如果由于某种原因缓冲服务器出现故障,则托管缓冲服务器的容器也会出现故障。因此,容器中的所有算子及其下游算子都从最后一个已知检查点重新部署。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2023-01-20
      • 1970-01-01
      • 2018-09-29
      • 2020-09-10
      相关资源
      最近更新 更多