我对Kafka比较陌生。我已经做了一些实验,但是对于消费者补偿我有些不清楚。根据到目前为止的了解,使用方启动时,将从其读取的偏移量由配置设置确定auto.offset.reset
(如果我输入错了,请更正我)。
现在说,例如,该主题中有10条消息(偏移量0到9),一个消费者在崩溃之前(或我杀死该消费者之前)碰巧消耗了其中的5条消息。然后说我重新启动该使用者进程。我的问题是:
如果将auto.offset.reset
设置为smallest
,它是否总是从偏移量0开始消耗?
如果将auto.offset.reset
设置为largest
,它将从偏移量5开始消耗吗?
关于这种情况的行为是否总是确定性的?
如果我的问题不清楚,请随时发表评论。提前致谢。
它比您描述的要复杂一些。
在auto.offset.reset
只有当您的消费群没有一个有效的抵消承诺某处配置踢腿(现2个支持偏移存储器是卡夫卡和动物园管理员),而且还依赖于某种消费的你用什么。
如果您使用高级Java使用者,请设想以下情形:
您在某个消费群体group1
中有一个消费了5条消息并死亡的消费者。下次启动该使用者时,它甚至不会使用该auto.offset.reset
配置,并且将从死亡的位置继续,因为它将仅从偏移存储(如我所提到的,Kafka或ZK)中获取存储的偏移。
您在主题中有消息(如您所述),并且在新的使用者组中启动了使用者group2
。没有偏移量存储在任何地方,这次auto.offset.reset
配置将决定是从主题的开头(earliest
)还是从主题的结尾(latest
)开始
影响保留值earliest
和latest
配置对应的另一件事是日志保留策略。想象一下,您有一个保留时间配置为1小时的主题。您产生5条消息,然后一个小时后又发布5条消息。该latest
偏移将仍然相同,前面的例子,但earliest
一个不能是0
因为卡夫卡都已经删除这些消息,并因此最早可偏移会5
。
上面提到的所有内容都不相关,SimpleConsumer
并且每次运行它都将决定从哪里开始使用auto.offset.reset
config。
如果您使用的卡夫卡版本比0.9老,你要替换earliest
,latest
用smallest
,largest
。
问题内容: 我有一个主题列表(目前为10个),其规模将来可能会增加。我知道我们可以在每个主题中产生多个线程(每个主题)使用,但是就我而言,如果主题数量增加,那么从主题中使用的线程数量就会增加,这是我不希望的,因为主题不是太频繁地获取数据,因此线程将处于理想状态。 有没有办法让一个消费者从所有主题中消费?如果是,那我们如何实现呢?另外,Kafka将如何维护偏移量?请提出答案。 问题答案: 我们可以使
我对Kafka比较陌生。我对它做了一些实验,但有一些东西对我来说是不清楚的关于消费者抵消。根据我到目前为止的理解,当使用者启动时,它将从其开始读取的偏移量由配置设置确定(如果我错了,请更正)。 现在举个例子,在主题中有10条消息(偏移0到9),一个消费者碰巧在它关闭之前(或者在我杀死消费者之前)消费了其中的5条消息。然后假设我重新启动消费者进程。我的问题是: > 如果设置为,是否总是从偏移量0开始
设置 多个独立的源系统将AVRO事件推送到Kafka主题中。KafkaS3接收器连接器从本主题读取AVRO事件,并写入S3拼花格式。 问题 我们的架构注册表中的 AVRO 架构不符合标准。例如,源系统中的十进制字段在架构注册表中具有基类型字符串和逻辑类型十进制。AVRO 中不允许这些类型的组合(十进制逻辑类型必须始终具有基本类型修复/字节。 这些不正确的AVRO模式导致不正确的拼花文件模式。E、
当我运行这个命令时,我得到了两个主题。我知道我创建了测试主题,但我看到了另一个名为“消费者偏移”的主题。从名称来看,这意味着它与消费者补偿有关,但它是如何使用的?
您能说Apache Karaf包括以下内容吗?其中包括: Apache Felix(它是OSGi 4.2框架的实现) Apache Aries(它是Blueprint标准的实现)
本文向大家介绍什么是kafka消费者组?相关面试题,主要包含被问及什么是kafka消费者组?时的应答技巧和注意事项,需要的朋友参考一下 答:消费者组的概念是Apache Kafka独有的。基本上,每个Kafka消费群体都由一个或多个共同消费一组订阅主题的消费者组成。