容错-Apache Flink状态函数将相同的消息转发给N个函数


0

我试图将传入的消息发送到多个有状态函数,但我不能完全理解如何做。为了便于理解,让我们把它们的一些状态函数和一个函数发送出去。这些函数将这些整数添加到它们的状态值中,并将其保存为新状态。

当这两个远程功能中的一个发生故障时,另一个应继续以相同的方式 job 。

我想把他们一个接一个地寄过来,如下所示,但我认为这行不通

context.send(RemoteFuncType1,someID,someInteger);
context.send(RemoteFuncType2,someID,someInteger);
...
    如何以容错的方式执行此操作?

1 答案


0

你建议的方法是正确的!

StateFun将以一致的方式向远程函数传递消息。如果其中一个函数遇到短暂的停机时间,StateFun将重试发送消息,直到:

    它会成功地交付它(没有后退)

由于StateFun管理消息传递和函数的状态(包括远程),因此它将确保向每个函数传递一致的状态和消息。

为了更深入地了解 checkpoints在Flink中的 job 原理,以及它如何实现一次处理,我建议如下:

https://ci.apache.org/projects/flink/flink-docs-stable/internals/stream_checkpointing.html


我来回答

写文章

提问题

面试题