内容简介: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消费者增量拉取
- Kafka分区与消费者的关系
- Kafka分区与消费者的关系
- Java精讲:生产者-消费者
- 7、服务发现&服务消费者Ribbon
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JavaScript & jQuery交互式Web前端开发
[美]达克特(Duckett,J.) / 杜伟、柴晓伟、涂曙光 / 清华大学出版社 / 2015-6-9 / 79.80元
欢迎选择一种更高效的学习JavaScript和jQuery的方式。 你是一名JavaScript新手?或是您曾经向自己的Web页面上添加过一些脚本,但想以一种更好的方式来实现它们?本书非常适合您。本书不仅向您展示如何阅读和编写JavaScript代码,同时还会以一种简单且视觉化的方式,教您有关计算机编程的基础知识。阅读本书之前,您只需要对HTML和CSS有一些了解即可。 通过将编程理论......一起来看看 《JavaScript & jQuery交互式Web前端开发》 这本书的介绍吧!
JSON 在线解析
在线 JSON 格式化工具
RGB HSV 转换
RGB HSV 互转工具