《Kafka权威指南》——问题1——onParitionsAssigned

四、Kafka消费者——从Kafka读取数据

4.8 从特定偏移量处开始处理数据

4.7节中说到,在调用subcribe()方法时传进去一个ConsumerRebalanceListener实例,可以在为消费者分配新分区或移除分区时,可以调用执行一些代码。

  1. onPartitionsRevoked 方法会在再均衡开始之前和消费者读取消息之后被调用
  2. onParitionsAssigned 方法会在重新分配分区之后和消费者开始读取消息之前被调用

4.8节中,使用seek()方法,并在消费者启动或分配到新分区时,可以使用seek()方法查找保存在数据库里的偏移量。
示例:

public class SaveOffsetsOnrebalnce implements ConsumerRebalanceListener{
	public void onPartitionsRevoked(Collection<TopicPartition> partitions){
		commitDBTransaction(); // 1
	}
	public void onParitionsAssigned(Collection<TopicPartition> partitions){
		for (TopicPartition partition : partitions)
			consumer.seek(partition, getOffsetFromDB(partition)); // 2
	}
	consumer.subscribe(topics, new SaveOffsetOnRebalance(consumer));
	consumer.poll(0);
	for (TopicPartition partition : consumer.assignment())
		consumer.seek(partition, getOffsetFromDB(partition)); // 3

	while (true){
		ConsumerRecords<String, String> records = consumer.poll(100);
		...
	}
}

书上说
2处,从数据库获取偏移量,在分配到新分区的时候,使用seek()方法定位到那些记录。
3处,订阅主题后,开始启动消费者,我们马上调用一次poll()方法,让消费者加入到消费者群组里,并获取分配到的分区,然后马上调用seek()方法定位分区的偏移量。

问题

  1. 为什么在有 onParitionsAssigned 中调用seek()的情况下(消费者加入后应该会调用),还要在3处seek()第二遍?
  2. 为什么需要poll(0)?不是很理解 <让消费者加入到消费者群组里>的解释。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "kafka权威指南2pdf"指的是一本关于Kafka分布式消息系统的权威指南,并且是以PDF电子书的形式出现。Kafka是一个高吞吐量的分布式发布订阅消息系统,广泛应用于实时数据处理和其它互联网技术。本指南的第二版涵盖了Kafka 2.0的新特性和改进,包括可靠的管道处理、连接器、Kafka Streams等,帮助读者深入了解Kafka的全貌,并进一步优化自己的架构设计和应用场景。 指南通过深入浅出的方式,逐步介绍了Kafka的核心概念和使用方法,包括消息存储、分布式产生消费流程、数据读写、消息分区和复制以及集群管理等方面。同时,书中也针对生产环境中的各种实际问题进行了详细阐述和解决方案。除此之外,本指南还讲述了一些使用场景以及常见错误和故障处理的方法。 本书面向从事分布式系统、大数据、消息队列等领域的研究人员和技术工程师,对于对Kafka有兴趣的读者也是一个很好的入门教材。PDF电子书格式的发布方便了读者的获取和查阅,同时也便于搜索和存储。总之,kafka权威指南2pdf是一本Kafka方面的精彩书籍,值得广大读者的借鉴和阅读。 ### 回答2: Kafka权威指南2是一本权威分布式消息系统Kafka指南,其中包含了Kafka的基本概念、设计原则、架构以及各个组件的实现流程和细节等方面的内容。通过阅读该指南,读者可以深入了解Kafka的架构和运作机制,掌握Kafka的基本使用和实践技术,以及学习到Kafka的性能优化技巧和最佳实践等知识。 该指南的第二版相较于第一版进行了全面的更新和扩充,其中包含了新增加的Kafka Streams、Kafka Connect和Kafka Security等新特性的介绍和使用方法,以及更为深入的代码实现和性能优化技巧的详述。此外,该指南还包含了Kafka在不同应用场景下的实际应用案例,为读者提供了更加丰富的学习内容和实践参考。 总之,Kafka权威指南2是一本非常值得学习和研究的指南,对于从事大数据分布式系统开发、架构设计和运维管理的工程师以及对Kafka感兴趣的开发者来说,都是一本具有实用性和价值的技术书籍。 ### 回答3: Kafka权威指南2是由Jay Kreps, Neha Narkhede和Gwen Shapira联合撰写的Kafka技术详解书籍的第2版。该书详细介绍了Kafka的核心概念、架构设计、应用场景等,适合那些想要深入理解Kafka的开发者、架构师以及数据处理工程师等阅读。该书主要分为两部分,第一部分介绍了核心概念和技术,包括Kafka的可扩展性、Partition的原理、Producer和Consumer的实现以及如何通过Kafka实现数据流的处理等;第二部分主要介绍了如何使用Kafka构建实际应用场景,包括log aggregation、stream processing、messaging系统等。此外,该书还介绍了一些Kafka生态系统中的工具和框架,如Kafka Connect和Kafka Streams等,帮助读者深入了解如何在实际项目中应用Kafka。总的来说,该书不仅适合那些刚开始接触Kafka的开发者,也适合那些想要深入了解Kafka技术细节的开发者。通过阅读该书,读者可以掌握Kafka的核心知识,进而在实际项目中正确构建Kafka应用场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值