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

commitsync()实际上提交了什么?

胡玉书
2023-03-14

commitsync是像JavaDoc声称的那样提交了“在最后一次轮询()上返回的偏移量”(这可能会遗漏一些没有包含在最后一次poll结果中的分区),还是实际上提交了所有订阅分区的最新位置?考虑到AllConsumed:https://github.com/apache/kafka/blob/2.4.0/clients/src/main/java/org/apache/kafka/clients/consumer/kafkaconsumer.java#l1387

@Override
public void commitSync(Duration timeout) {
    acquireAndEnsureOpen();
    try {
        maybeThrowInvalidGroupIdException();
        if (!coordinator.commitOffsetsSync(subscriptions.allConsumed(), time.timer(timeout))) {
            throw new TimeoutException("Timeout of " + timeout.toMillis() + "ms expired before successfully " +
                    "committing the current consumed offsets");
        }
    } finally {
        release();
    }
}

共有1个答案

郭和硕
2023-03-14

它只提交实际轮询和处理的偏移量。如果上次投票中没有包括某些抵消,则这些抵消将不会被提交。

它不会提交所有订阅分区的最新位置。这将干扰Kafka的消费者抵消管理概念,以便能够在应用程序中断的地方重新启动应用程序。

根据我的理解,AllConsulted等效于commitsync的注释也记录了上次轮询中包含的的所有偏移量

 类似资料:
  • (我是docker的新手,请耐心等待)注意:我不使用卷,所以这个问题的答案不适用 我正在使用末尾列出的docker-compose文件,从两个docker映像(Jomla+Apache+PHP和mysql)创建两个容器。一切正常。 我可以连接到Joomla安装页面我完成了初始配置,连接到数据库,一切正常。(我现在可以浏览主页和管理页面)。即使是安装文件夹也可以很好地移除(joomla中的强制步骤)

  • 问题内容: 在构建RPM软件包的过程中,我必须指定BuildRoot,以后将在%install中使用它来侵害$ RPM_BUILD_ROOT。我一直认为$ RPM_BUILD_ROOT是RPM执行打包的假安装。然后,在使用RPM软件包进行安装时,它将安装到实际位置。例如: 我认为$ RPM_BUILD_ROOT仅用于打包过程,并且在某些方面,当用户执行“ rpm -ivh package.rpm”

  • 我只是第一次涉足iOS开发,我必须做的第一件事就是实现一个自定义容器视图控制器——让我们称之为SideBarViewController——它交换了几种可能的视图控制器中的哪一种它显示的子视图控制器,几乎与标准的Tab Bar Controller一模一样。(它几乎是一个标签栏控制器,但有一个可隐藏的侧菜单,而不是标签栏。) 根据Apple文档中的说明,每当我向容器中添加子ViewControll

  • 如果我们假设有如下所示的XML,那么match=“/”究竟返回什么?据我所知,它返回了一个虚构的顶级节点,它具有<代码> 测验xml

  • 我正试图把我的头缠在Apache Mesos上,需要澄清几个项目。 我对Mesos的理解是,它是一个安装在集群中的每个物理/VM服务器(“节点”)上的可执行文件,然后提供一个Java API(不知何故),将每个单独的节点视为计算资源(CPU/RAM/等)的集体池。因此,对于使用Java API编码的程序,他们只看到一组资源,而不必担心如何/在哪里部署代码。 因此,首先,我在这里的理解可能是根本错误

  • 从文档中可以看出,-Xss用于设置JVM的堆栈大小。但我对这一说法感到非常困惑。 在Java中,每个线程都有自己的堆栈。-Xss指定的数字是否: > 线程的每个堆栈的大小。e、 如果将-Xss设置为256K,则每个线程将有一个256K大的堆栈。因此,10个线程将总共使用2560K。 非常感谢你。 编辑: 谢谢你的回答。看起来像是上面的(2)senario-Xss指定特定线程的最大堆栈大小。 然后我