【python】confluent_kafka将offset置为最大
该博文方法有问题,正确方案在http://www.cnblogs.com/dplearning/p/7992994.html
将指定group对应的offset重置到最大值,跳过未消费数据
代码如下:
# coding:utf-8 import os
from confluent_kafka import Consumer, TopicPartition
import traceback def reset_kafka_offset(group, topic):
broker_list = "xx.xx.xx.xx:9092,xx.xx.xx.x:9092"
c = Consumer({'bootstrap.servers': broker_list,
'group.id': group,
'default.topic.config': {'auto.offset.reset': 'smallest'}})
c.subscribe([topic]) tp = TopicPartition(topic, 0)
tp_out = c.committed([tp])
init_offset = tp_out[0].offset
if int(init_offset) == -1001: #是一个新的group 没有消费过
# 如果是一个新的group.id必须先消费一条消息,这样后面的重置offset才有效, 如果不消费,重置offset前后获取到的offset值都是-1001
msg = c.poll()
if not msg.error():
msg_data = msg.value().decode('utf-8')
c.commit() tp = TopicPartition(topic, 0)
watermark_offsets = c.get_watermark_offsets(tp) # 获取offset最大最小值
print watermark_offsets
if watermark_offsets:
logsize = watermark_offsets[1] # offset最大值
if logsize is not None:
tp1 = TopicPartition(topic, 0, int(logsize))
c.commit(offsets=[tp1], async=False) # 直接将offset置为logsize,跳过未消费的数据
tp_out = c.committed([tp]) # 查看提交的offset位置
print tp_out[0].offset
c.close() if __name__ == "__main__":
reset_kafka_offset("test", "test")
【python】confluent_kafka将offset置为最大的更多相关文章
- 【python】函数之内置函数
Python基础 内置函数 今天来介绍一下Python解释器包含的一系列的内置函数,下面表格按字母顺序列出了内置函数: 下面就一一介绍一下内置函数的用法: 1.abs() 返回一个数值的绝对值,可以是 ...
- python常用数据类型内置方法介绍
熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...
- Python中的内置函数__init__()的理解
有点意思,本来我是学习java的.总所周知,java也有构造函数,而python在面向对象的概念中,也有构造函数.它就是 __init__(self) 方法. 其实类似于__init__()这种方法, ...
- python字符串常用内置方法
python字符串常用内置方法 定义: 字符串是一个有序的字符的集合,用与存储和表示基本的文本信息. python中引号中间包含的就是字符串. # s1='hello world' # s2=&quo ...
- python学习交流 - 内置函数使用方法和应用举例
内置函数 python提供了68个内置函数,在使用过程中用户不再需要定义函数来实现内置函数支持的功能.更重要的是内置函数的算法是经过python作者优化的,并且部分是使用c语言实现,通常来说使用内置函 ...
- python常用的内置函数哈哈
python常用的内置函数集合做一个归类用的时候可以查找 abs 返回数字x的绝对值或者x的摸 all (iterable)对于可迭代的对象iterable中所有元素x都有bool(x)为true,就 ...
- python常用的内置函数
python常用的内置函数集合做一个归类用的时候可以查找- abs 返回数字x的绝对值或者x的摸 - all (iterable)对于可迭代的对象iterable中所有元素x都有bool(x)为tru ...
- python字符串处理内置方法一览表
python字符串处理内置方法一览表 序号 方法及描述 1 capitalize()将字符串的第一个字符转换为大写 2 center(width, fillchar) 返回一个指定的宽度 widt ...
- 十六. Python基础(16)--内置函数-2
十六. Python基础(16)--内置函数-2 1 ● 内置函数format() Convert a value to a "formatted" representation. ...
随机推荐
- java 基础 整数类型
1.Java有四种整数类型:byte.short.int和long. 2.Java默认整数计算的结果是int类型. 3.整数的字面量是int类型. 4.若字面量超过int类型的最大值,则字面量是lon ...
- 关于each other terminal
LD_LIBRARY_PATH shouldn't contain the current directory I am trying to build a self-contain GLIBC 2. ...
- 20165237 2017-2018-2 《Java程序设计》第8周学习总结
20165237 2017-2018-2 <Java程序设计>第8周学习总结 教材学习内容总结 1.程序:一段静态的代码,它是应用软件执行的蓝本. 2.进程:程序的一次动态执行过程,它对应 ...
- Python学习笔记-输入与输出
一.Python提供了raw_input()和input()两个函数实现数据输入. 1.raw_input() 接收字符串类型的输入数据. str1=raw_input("请输入字符串:&q ...
- SpringSecurity权限表达式
* 当我们想要使用多个权限表达式的时候,是不能直接级联调用的,也就是说,我们只能手写了. @Override protected void configure(HttpSecurity http) t ...
- axios请求接口的踩坑之路
1.跨域问题除了前端安装插件还需要后端php设置,设置如下 Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, ...
- ES6学习笔记五(promise异步)
知识点1:rosolve是执行下一步then() // Promise { let ajax=function(){ console.log('执行2'); return new Promise(fu ...
- Ridis
Redis介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的values类型相对更多,包括字符串.列表.哈希散列表.集合,有序集合. 这些数据类型都支持push/ ...
- codeforces 462div.2
A A Compatible Pair standard input/output 1 s, 256 MB x1916 B A Prosperous Lot standard input/out ...
- 外网zabbix-server使用主动模式监控公司内网windows服务器
外网zabbix-server使用主动模式监控公司内网windows服务器 1.Zabbix Agent active批量调整客户端为主动模式监控将Template OS Windows模板调整为主动 ...