Kafka消费者的偏移量和高级/简单消费者

栏目: IT技术 · 发布时间: 6年前

内容简介:Kafka消费者的偏移量和高级/简单消费者

Kafka消费者的偏移量和高级/简单消费者

提交和偏移量

提交:更新分区的当前位置称为提交,当前版本(0.10.1.1)用topic ___consumer_offsets 保存提交的偏移量

偏移量:消费者在Kafka追踪到消息在分区里的位置

消费者在崩溃或者有新的消费者加入群组,就会触发再均衡。这是需要读取最后一次偏移量,然后从偏移量指定的地方继续处理。提交的偏移量小于真实的偏移量,消息会被重复处理。大于真实的偏移量,消息会丢失。

Kafka存储偏移量的位置

kafka能灵活地管理offset,可以选择任意存储和格式来保存offset。KafkaOffsetMonitor目前支持以下流行的存储格式。

  • kafka0.8版本以前,offset默认存储在zookeeper中(基于Zookeeper)

  • kafka0.9版本以后,offset默认存储在内部的topic中(基于Kafka内部的topic)即前文说的 ___consumer_offsets这个topic

  • Storm Kafka Spout(默认情况下基于Zookeeper)这个没有验证,不过在目前我使用Storm框架中仍用上一种方法获取数据

KafkaOffsetMonitor每个运行的实例只能支持单一类型的存储格式。

kafka偏移量的相关配置

enable.auto.commit

true(默认):自动提交偏移量,可以通过配置 auto.commit.interval.ms属性来控制提交偏移量的频率。(基于时间间隔)

false:手动控制偏移量。可以在程序逻辑必要的时候提交偏移量,而不是基于时间隔。此时可以进行同步,异步,同步异步组合(参考相应api)。

auto.offset.reset

无法读取偏移量时候读取消息的设置

latest(默认):从最新记录读取数据。

earliest:从起始位置读取数据。


高级/简单消费者

目前,kafka有两类消费者:高级消费者(high-level consumer )和简单消费者( simple consumer )。在简单的消费者中,用户可以指定代理分区和偏移,但没有故障转移/负载均衡的支持。因此,具有要求3和4但不要求组/负载均衡的用户更愿意使用简单的消费者。基本上,高级消费者和简单的消费者有以下的区别。

1.自动/隐藏偏移管理(Offset Management )

2.自动(简单)分区分配

3.Broker 故障转移=>自动重新平衡

4.Consumer 故障转移=>自动重新平衡

如果希望控制偏移管理与其他人保持不变,一种选择是将高级消费者的当前ZK实现暴露给用户并允许他们覆盖; 另一种选择是更改高级使用者API以返回与消息关联的偏移量向量

如果想要控制分区分配,一个选项是更改高级使用者API以允许在创建流时传入此类配置信息; 另一个选项是ad-hoc:只需创建一个单分区主题并将其分配给使用者。

如果只希望自动分区分配更加“智能”并考虑共址,那么有一个选项是将主机/机架信息存储在ZK中,让负载均衡算法在进行计算时读取它们。

使简单的消费者复杂化可能会发生与现有应用程序兼容的风险,更好的操作是修补高级消费者。


参考资料

《Kafka权威指南》个人对这本书的定位是一本很经典很实用的 工具 书,阅读方法也是遇到相关问题再查询。

http://orchome.com/54比较好和全面的讲解了偏移量。

https://cwiki.apache.org/confluence/display/KAFKA/Consumer+Client+Re-Design官方关于消费组的文档,讲的很细。


分区的问题大致总结了一些,不过具体的分区设置始终要与集群和不同组件结合来看的。

https://blog.csdn.net/jyj1100/article/details/82810970 Kafka分区问题的记录


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

标签: kafka消费者的偏移量和高级/简单消费者

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Numerical Recipes 3rd Edition

Numerical Recipes 3rd Edition

William H. Press、Saul A. Teukolsky、William T. Vetterling、Brian P. Flannery / Cambridge University Press / 2007-9-6 / GBP 64.99

Do you want easy access to the latest methods in scientific computing? This greatly expanded third edition of Numerical Recipes has it, with wider coverage than ever before, many new, expanded and upd......一起来看看 《Numerical Recipes 3rd Edition》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

在线进制转换器
在线进制转换器

各进制数互转换器

MD5 加密
MD5 加密

MD5 加密工具