手动维护kafka的偏移量,各种方式整理总结

对sparkstreaming消费kafka消息进行逻辑判断,逻辑清晰明确,但是offset存在zookeeper当中,需要自己实现其他存储

https://my.oschina.net/u/1027043/blog/1581278

同样是存储到zookeeper当中,记录博文较多

https://www.cnblogs.com/junneyang/p/8267902.html

也是用zookeeper存储offsets

https://blog.csdn.net/mengxb12138/article/details/77036924

scala实现zookeeper上存储,中间加入判断offsets是否过期的问题,需要看

https://www.cnblogs.com/zhangtianyuan/p/8483082.html

保存到zookeeper上,逻辑一般,但是附带工具类

https://blog.csdn.net/Lin_wj1995/article/details/80080359

zookeeper,逻辑讲解清晰

https://www.cnblogs.com/hd-zg/p/6841249.html

逻辑比较全面包括了对存储信息的重复性校验,使用java与sacla两种实现,不错

https://www.2cto.com/net/201710/692443.html

 

checkpoint:

这个是将offsets存到了checkpoint与zookeeper两种方式

https://blog.csdn.net/u013673976/article/details/52603817

 

存入redis

逻辑一般,从redis当中读取offsets如果有就用那个没有就自己从头读取

https://blog.csdn.net/yumingzhu1/article/details/89639298

 

 

消息的同步异步提交

详细讲解了offset的各种同步异步提交方式以及其组合提交,防止提交失败出现重复读取问题

https://www.cnblogs.com/sodawoods-blogs/p/8969774.html

增加了时间戳的消费offsets的比较,重要!!!

https://blog.csdn.net/Simon_09010817/article/details/83750115

 

存入Mysql:

java实现kafka的读取,mysql记录offsets,逻辑清晰,重要!!!

https://blog.csdn.net/tlqfreedom/article/details/73289396

scala实现kafka的offsets存mysql,中间加入offsets的大小的比较,需要了解,补全逻辑漏洞,这个所谓的大小比较,其实是比较超时问题,判断存储的与earlist的大小,避免出现异常信息。

https://blog.csdn.net/Lu_Xiao_Yue/article/details/84110045 

同样是mysql存储,略微参考

https://blog.csdn.net/m0_37723298/article/details/84751238

 

kafka的offset目前比较好的方法就是两种,一种是offset写到外部或者mysql/redis/zookeeper等还有一种是利用最新的0.10版本以后的用kafka的新API用其最新的API同步与异步结合提交,这样更加可靠。

https://www.jianshu.com/p/0e3d2c2ed24b

https://www.jianshu.com/p/57628f47314a

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要获取Kafka偏移量,可以使用Kafka Consumer API提供的方法。以下是获取Kafka偏移量的示例代码: ```java import org.apache.kafka.clients.consumer.ConsumerConfig; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecords; import org.apache.kafka.clients.consumer.KafkaConsumer; import org.apache.kafka.common.TopicPartition; import java.util.Arrays; import java.util.Properties; public class KafkaOffsetExample { private static final String TOPIC_NAME = "my-topic"; private static final String BOOTSTRAP_SERVERS = "localhost:9092"; private static final String GROUP_ID = "my-group"; public static void main(String[] args) { Properties props = new Properties(); props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS); props.put(ConsumerConfig.GROUP_ID_CONFIG, GROUP_ID); props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer"); props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer"); KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props); // 订阅主题 consumer.subscribe(Arrays.asList(TOPIC_NAME)); // 获取分区 TopicPartition partition = new TopicPartition(TOPIC_NAME, 0); // 获取偏移量 long offset = consumer.position(partition); System.out.println("Offset: " + offset); // 关闭消费者 consumer.close(); } } ``` 在这个例子中,我们使用KafkaConsumer类获取Kafka偏移量。首先,我们创建KafkaConsumer实例并订阅主题。然后,我们获取分区并使用position()方法获取当前偏移量。最后,我们打印偏移量并关闭消费者。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值