Apache kafka 在卡夫卡管理当前抵销
我在文档中找不到关于卡夫卡如何为消费者管理当前偏移量的任何信息。我猜默认情况下,使用者会将最后读取的偏移量保留在内存中,并通过显式调用Apache kafka 在卡夫卡管理当前抵销,apache-kafka,kafka-consumer-api,offset,Apache Kafka,Kafka Consumer Api,Offset,我在文档中找不到关于卡夫卡如何为消费者管理当前偏移量的任何信息。我猜默认情况下,使用者会将最后读取的偏移量保留在内存中,并通过显式调用commitSync或commitSync或按照enable.auto.commit策略提交。这是正确的还是我遗漏了什么?如果有人能指出有关抵消管理这一方面的文档或参考资料,我们将不胜感激 提前感谢。一个消费者群体是一组消费者,协调他们使用来自主题的消息。现在,您的一位卡夫卡经纪人担任集团协调员,负责协调属于该集团的所有消费者 根据enable.auto.comm
commitSync
或commitSync
或按照enable.auto.commit
策略提交。这是正确的还是我遗漏了什么?如果有人能指出有关抵消管理这一方面的文档或参考资料,我们将不胜感激
提前感谢。一个消费者群体是一组消费者,协调他们使用来自主题的消息。现在,您的一位卡夫卡经纪人担任集团协调员,负责协调属于该集团的所有消费者
根据enable.auto.commit
的配置以及您在代码中处理偏移管理的方式,将提交并存储在名为\uu consumer\u offset
的主题中
如果
enable.auto.commit
设置为True
,则消费者的偏移量会在后台定期提交。另一方面,commitSync()
和commitSync()
分别是允许手动提交偏移量的阻塞调用和非阻塞调用。如果使用commitSync()
或commitSync()
之一,建议将enable.auto.commit
设置为False
在极少数情况下,如果策略enable.auto.commit
设置为True
,但同时使用commitSync()
或commitSync()
中的一个,则在这两种情况下都会提交偏移量:
- 每次调用
或commitSync()
commitSync()
- 每个
ms,其中N
是一个可配置参数(N
)auto.commit.interval.ms
当
enable.auto.commit
设置为true
时,每auto.commit.interval.ms
一次提交最大偏移量。但是,只有在调用poll()
时才会发生这种情况。在每次轮询(max.poll.interval.ms
)中,选中启用.auto.commit
。无论何时poll(),使用者都会检查是否到提交上次轮询中返回的偏移量的时间
有关更多详细信息,请参阅。谢谢您提供的信息。我更感兴趣的是了解未承诺(当前)抵销管理(问题就在于此)。这是由消费者管理的吗?如果是,在哪里以及如何管理?@Aarkan我已经编辑了我的答案并包含了更多的信息。我有同样的问题。你知道答案了吗?