【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. ...
随机推荐
- NLTK1及NLP理论基础
以下为Aron老师课程笔记 一.NLTK安装 1. 安装nltk https://pypi.python.org/pypi/nltk 把nltk-3.0.0解压到D:\Anacond3目录 打开cmd ...
- Liunx/RHEL6.5 Oracle11 安装记录[缺少依赖包的解决方案]
1.将镜像文件挂,如/mnt # mount -o loop rhel-server-6.1-x86_64-dvd.iso /mnt#这一步其实有很多实现方法,如可以将镜像文件中的Packages文件 ...
- GIT刷新忽略文件.gitignore
1.使用命令工具Git Bash,进入需要修改的工作目录.如C:/est 则输入 cd c:/test 2.重置所有缓存(注意后面有个.) git rm -r --cached . 3.重新添加(注意 ...
- fastclick.js插件使用简单说明
为什么存在延迟? 从点击屏幕上的元素到触发元素的 click 事件,移动浏览器会有大约 300 毫秒的等待时间.为什么这么设计呢? 因为它想看看你是不是要进行双击(double tap)操作. ...
- gradle文件中自定义字段值在java代码中使用
1. 在build.gradle 中 buildConfigField 的参数有3个 第一个类型 第二个为名称 第三个是值 如果是字符串类型 请不要忘记 双引号! buildTypes { ...
- 《shiro》视频目录---1、权限管理-shiro
\day01_shiro\0323\10realm支持散列.avi;\day01_shiro\0323\1权限管理原理.avi;\day01_shiro\0323\2权限管理解决方案.avi;\day ...
- OGG-01668
ERROR OGG-03517 Oracle GoldenGate Delivery for Oracle, test.prm: Conversion from character set U ...
- android java 字符串正则表达式 分离特殊字符串
Java中正则表达式的使用 在Java中,我们为了查找某个给定字符串中是否有需要查找的某个字符或者子字串.或者对字符串进行分割.或者对字符串一些字符进行替换/删除,一般会通过if-else.for 的 ...
- Vue -自定义指令&钩子函数
除了核心功能默认内置的指令,Vue也允许注册自定义指令 页面加载后,让文本框自动获取焦点,原生js做法是获取文本框元素后调用focus()方法,但Vue不建议手动操作DOM元素,所以此时要自定义指令 ...
- 20165231 2017-2018-2 《Java程序设计》第4周学习总结
教材学习内容总结 第五章 子类与父类: 所谓的子类,必须是一个类继承了另一个类,这个类才是子类:比如:public class A extend B这就是说A类继承了B类,那么A就是B的子类:B是A的 ...