|NO.Z.00033|——————————|BigDataEnd|——|Hadoop&kafka.V18|——|kafka.v18|消费者位移管理.v01|

一、消费者位移管理
### --- 消费者位移管理

~~~     Kafka中,消费者根据消息的位移顺序消费消息。
~~~     消费者的位移由消费者管理可以存储于zookeeper中也可以存储于Kafka主题__consumer_offsets中。
~~~     Kafka提供了消费者API,让消费者可以管理自己的位移。
二、API如下:KafkaConsumer<K, V>
项目 细节
API public void assign(Collection<TopicPartition> partitions)
说明 给当前消费者手动分配一系列主题分区。
手动分配分区不支持增量分配,如果先前有分配分区,则该操作会覆盖之前的分配。
如果给出的主题分区是空的,则等价于调用unsubscribe方法。
手动分配主题分区的方法不使用消费组管理功能。
当消费组成员变了,或者集群或主题的元数据改变了,不会触发分区分配的再平衡。
手动分区分配assign(Collection)不能和自动分区分配subscribe(Collection,ConsumerRebalanceListener)一起使用。
如果启用了自动提交偏移量,则在新的分区分配替换旧的分区分配之前,
会对旧的分区分配中的消费偏移量进行异步提交。
API public Set<TopicPartition> assignment()
说明 获取给当前消费者分配的分区集合。
如果订阅是通过调用assign方法直接分配主题分区,则返回相同的集合。
如果使用了主题订阅,该方法返回当前分配给该消费者的主题分区集合。
如果分区订阅还没开始进行分区分配,或者正在重新分配分区,则会返回none。
AIP public Map<String, List<PartitionInfo>> listTopics()
说明 获取对用户授权的所有主题分区元数据。该方法会对服务器发起远程调用。
API public List<PartitionInfo> partitionsFor(String topic)
说明 获取指定主题的分区元数据。
如果当前消费者没有关于该主题的元数据,就会对服务器发起远程调用。
API public Map<TopicPartition, Long> beginningOffsets(Collection<TopicPartition>partitions)
说明 对于给定的主题分区,列出它们第一个消息的偏移量。
注意,如果指定的分区不存在,该方法可能会永远阻塞。
该方法不改变分区的当前消费者偏移量。
API public void seekToEnd(Collection<TopicPartition> partitions)
说明 将偏移量移动到每个给定分区的最后一个。
该方法延迟执行,只有当调用过poll方法或position方法之后才可以使用。
如果没有指定分区,则将当前消费者分配的所有分区的消费者偏移量移动到最后。
如果设置了隔离级别为:
isolation.level=read_committed,则会将分区的消费偏移量移动到最后一个稳定的偏移量,
即下一个要消费的消息现在还是未提交状态的事务消息。
API public void seek(TopicPartition partition, long offset)
说明 将给定主题分区的消费偏移量移动到指定的偏移量,
即当前消费者下一条要消费的消息偏移量。
若该方法多次调用,则最后一次的覆盖前面的。
如果在消费中间随意使用,可能会丢失数据。
API public long position(TopicPartition partition)
说明 检查指定主题分区的消费偏移量
API public void seekToBeginning(Collection<TopicPartition> partitions)
说明 将给定每个分区的消费者偏移量移动到它们的起始偏移量。
该方法懒执行,只有当调用过poll方法或position方法之后才会执行。
如果没有提供分区,则将所有分配给当前消费者的分区消费偏移量移动到起始偏移量。

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

posted on   yanqi_vip  阅读(24)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示