有了至少一次保证,我知道在失败的情况下有重复的可能性。然而,
1) Kafka流库执行提交的频率有多高?
( 2)用户是否需要考虑在上述之外提交?
3)是否有一种最佳做法,说明应多久执行提交?
发布于 2018-05-14 04:06:47
卡夫卡流定期提交,可以通过参数commit.interval.ms进行配置(默认为30秒;如果启用了正确的处理,则默认值为100 is )。
通常,用户不需要手动提交。注意,用户对提交没有完全的控制,但只能请求提交: cf。How to commit manually with Kafka Stream?
提交是同步点,如果提交太频繁(对于每个处理过的记录之后的极端例子),则吞吐量可能会显著下降。它还高度依赖于应用程序,因为提交频率决定了应用程序进程可能重复的数量(这也取决于输入数据速率)。因此,你需要考虑在失败的情况下你愿意忍受多少重复。这还取决于应用程序重新处理数据所需的时间:在此期间,应用程序可能无法完全可用。总的来说,很难给出推荐,您需要考虑每个应用程序所描述的权衡。
https://stackoverflow.com/questions/50312386
复制相似问题