主要使用:consumer.end_offsets()即可

示例代码

首先运行生产者:

from kafka import KafkaProducer
import datetime
import json

# 启动生产者
producer = KafkaProducer(bootstrap_servers='localhost:9092', api_version=(0, 10, 2))
my_topic = "python_test"

for i in range(100):
    data = {'num': i, 'data': datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}
    producer.send(my_topic, json.dumps(data).encode('utf-8')).get(timeout=30)

然后在消费者这里获取:

from kafka import KafkaConsumer
from kafka.structs import TopicPartition

consumer = KafkaConsumer(bootstrap_servers='localhost:9092', api_version=(0, 10, 2))
tp = TopicPartition("python_test", 0)  # 参数是[topic名称,partition]
consumer.assign([tp])  # 这里是声明我要手动管理这个consumer的这个partition啦
off_set_dict: dict = consumer.end_offsets([tp])
latest_offset = list(off_set_dict.values())[0]  # 这是最新的offset
print(latest_offset)
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐