gpt4 book ai didi

apache-kafka - Kafka Connect 能否保证 RetriableException 发生时的写入顺序?

转载 作者:行者123 更新时间:2023-12-02 01:14:11 26 4
gpt4 key购买 nike

我想保证使用SinkTask保存数据时的写入顺序.

如果我想在 SinkTask.put() 期间抛出 RetriableException , 将 Kafka Connect写入数据源 故障 比分区中的顺序?

比如一个partition中的消息是1-2-3,如果写Message-2时出现异常,Kafka Connect能保证消息到达数据源是1-2-3吗?

据我所知,Kafka Connect 写入数据源 异步 .所以看起来数据会乱序到达数据源。

最佳答案

简短回答:是的,消息的顺序将被保留,但您将不得不处理消息的重新传递。

在您的示例中,这意味着,如果 SinkTask.put 尝试将以下一批消息传递给您的接收器:1,2,3 并且在写入 1 之后和写入 2 之前通过抛出 RetriableException 失败,Connect 将暂停使用者并尝试重新交付在调用 SinkTask.put 期间失败的批次。这给了我们上述两个效果:

a) Connect 将暂停此任务/分区的使用者。这意味着在重试失败的消息之前不会传递其他批次的消息。因此,消息顺序被保留。例如。如果传递 1、2、3 失败并出现 RetriableException,则 Connect 将不会在传递 1、2、3 之前传递 4、5、6。

b) Connect 将重试传递在 SinkTask.put 期间失败的整个消息集。这意味着您的接收器将再次看到消息 1,然后再尝试第二次写入消息 2。

关于apache-kafka - Kafka Connect 能否保证 RetriableException 发生时的写入顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43508626/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com