当前位置: 首页 > 知识库问答 >
问题:

如果我已将自动提交设置为true,并且

阎博易
2023-03-14

我正在阅读https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/connectors/datastream/kafka/#kafka-消费者补偿提交行为配置

它说:

启用检查点:如果启用了检查点,Flink Kafka使用者将在检查点完成时提交存储在检查点状态中的偏移量。这确保了Kafka代理中提交的偏移量与检查点状态中的偏移量一致。用户可以通过在使用者上调用setCommitofSetsonCheckpoints(布尔)方法来选择禁用或启用偏移量提交(默认情况下,行为为true)。请注意,在此场景中,将完全忽略属性中的自动定期偏移提交设置。

如果我以10秒的间隔启用检查点,我还将CommitofSetsonCheckpoints设置为true,并将enable设置为enable。汽车提交=true和自动。犯罪间隔在Kafka消费者财产中,ms=5000。

那么,偏移量提交的行为是什么?是否每10秒提交3次偏移?执行检查点时从flink执行一次,从Kafka消费者的自动提交执行两次?

共有1个答案

吉泰宁
2023-03-14

enable.auto.commit:自动偏移提交,这个值的配置不是最终的偏移提交模式,需要考虑用户是否启用了检查点,将在下面的源代码分析中解释

消费者SetCommitofSetsonCheckpoints(true)​ 说明:设置完检查点后,提交偏移量,即oncheckpoint模式。默认情况下,该值为true。此参数将影响抵销的提交方式。下面的源代码将对其进行分析

因此,根据您所述的报价,并进一步查看互联网,Flink消费者将忽略汽车。提交配置启用检查点后,偏移提交行为将由使用者定义。SetCommitofSetsonCheckpoints已定义(默认情况下为true)

https://www.programmersought.com/article/84744879064/

来自Flink文档

禁用检查点:如果禁用检查点,Flink Kafka使用者将依赖内部使用的Kafka客户端的自动定期偏移提交功能。因此,要禁用或启用偏移量提交,只需设置enable。汽车提交/自动。犯罪间隔ms键到所提供的属性配置中的适当值。

启用检查点:如果启用了检查点,Flink Kafka使用者将在检查点完成时提交存储在检查点状态中的偏移量。这确保了Kafka代理中提交的偏移量与检查点状态中的偏移量一致。用户可以通过在使用者上调用setCommitofSetsonCheckpoints(布尔)方法来选择禁用或启用偏移量提交(默认情况下,行为为true)。请注意,在此场景中,将完全忽略属性中的自动定期偏移提交设置。

请注意,在这种情况下,属性中的自动定期偏移提交设置被完全忽略

 类似资料:
  • 问题内容: 我一直想知道为什么JDBC API提供了自动提交模式()。似乎很吸引人的麻烦只是诱使人们陷入麻烦。我的理论是,仅将其添加到JDBC是为了简化希望创建使用JDBC编辑和运行SQL的工具的供应商的生活。是否有其他原因打开自动提交,还是总是错误? 问题答案: 不幸的是,使用自动提交是特定于数据库的(事务行为也是如此)。我认为,如果您没有全局的程序化交易策略,自动提交可能比仅希望每个人都正确关

  • 默认情况下,Spring数据JPA或Hibernate的自动提交设置为false。这听起来很合理,因为这些框架与实体一起工作,并且对实体的更新可能涉及通过多个SQL查询对多个表的更新。因此,通过将auto-commit设置为false并显式控制事务,这些框架确保了对实体的更改是原子的和一致的。 但现在Hikari是spring data jpa的默认连接池提供程序,在查看应用程序日志时,我看到Hi

  • 我目前正在学习Spring Hibernate的集成,到目前为止,我正在让它发挥作用。但我遇到了这样的情况:我不想在进程结束时提交事务,因为我只想看到生成的sql语句,以用于测试和调试。 我已经在我的hibernate属性中添加了false,但它仍然不起作用。 如果使用Spring处理hibernate事务,是否可能实现?因为在hibernate中使用传统事务是可能的,只是不调用会话。commit

  • 我正在使用java和mysql,但我无法修复错误。当我将new Farm插入表时,我正面临这些错误...... Java语言sql。SQLException:当autocommit=true时无法调用commit 错误如下 Java语言sql。SQLException:当autocommit=true时无法调用commit _commandsSQLE_loopSQLException(SQLEpa

  • 我已经将enable.auto.commit设置为true,并将auto.commit.interval.ms设置为10,000(即10秒)。现在我的问题是--如果使用者在第一次轮询时得到100条记录,而监听器正在处理一条一条的记录,而它在10秒内只处理了80条记录,它是提交并将偏移提前80还是100?

  • 不知是否有人能帮助我。 我试图运行下面的代码,我正在使用带有多个的表单。 我的问题是,当我运行这个,我收到以下错误: