kafka-python 获取topic lag值方式


Posted in Python onDecember 23, 2019

说真,这个问题看上去很简单,但“得益”与kafka-python神奇的文档,真的不算简单,反正我是搜了半天还看了半天源码。

直接上代码吧

from kafka import SimpleClient, KafkaConsumer
from kafka.common import OffsetRequestPayload, TopicPartition

def get_topic_offset(brokers, topic):
  """
  获取一个topic的offset值的和
  """
  client = SimpleClient(brokers)
  partitions = client.topic_partitions[topic]
  offset_requests = [OffsetRequestPayload(topic, p, -1, 1) for p in partitions.keys()]
  offsets_responses = client.send_offset_request(offset_requests)
  return sum([r.offsets[0] for r in offsets_responses])


def get_group_offset(brokers, group_id, topic):
  """
  获取一个topic特定group已经消费的offset值的和
  """
  consumer = KafkaConsumer(bootstrap_servers=brokers,
               group_id=group_id,
               )
  pts = [TopicPartition(topic=topic, partition=i) for i in
      consumer.partitions_for_topic(topic)]
  result = consumer._coordinator.fetch_committed_offsets(pts)
  return sum([r.offset for r in result.values()])


if __name__ == '__main__':
  topic_offset = get_topic_offset("brokers", "topic")
  group_offset = get_group_offset("brokers", "group_id", "topic")
  lag = topic_offset - group_offset

以上这篇kafka-python 获取topic lag值方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python判断直线和矩形是否相交的方法
Jul 14 Python
python批量添加zabbix Screens的两个脚本分享
Jan 16 Python
使用python实现链表操作
Jan 26 Python
CentOS 7下安装Python3.6 及遇到的问题小结
Nov 08 Python
Python+OpenCV实现实时眼动追踪的示例代码
Nov 11 Python
Python3和pyqt5实现控件数据动态显示方式
Dec 13 Python
使用matplotlib动态刷新指定曲线实例
Apr 23 Python
浅谈python量化 双均线策略(金叉死叉)
Jun 03 Python
宝塔面板成功部署Django项目流程(图文)
Jun 22 Python
运行Python编写的程序方法实例
Oct 21 Python
python小程序之飘落的银杏
Apr 17 Python
python ConfigParser库的使用及遇到的坑
Feb 12 Python
python3连接kafka模块pykafka生产者简单封装代码
Dec 23 #Python
python pyenv多版本管理工具的使用
Dec 23 #Python
Python测试Kafka集群(pykafka)实例
Dec 23 #Python
Python with语句和过程抽取思想
Dec 23 #Python
python每5分钟从kafka中提取数据的例子
Dec 23 #Python
Python彻底删除文件夹及其子文件方式
Dec 23 #Python
win10下python2和python3共存问题解决方法
Dec 23 #Python
You might like
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
php实现获取文章内容第一张图片的方法
2014/11/04 PHP
实例详解PHP中html word 互转的方法
2016/01/28 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
laravel 配置路由 api和web定义的路由的区别详解
2019/09/03 PHP
jquery如何通过name名称获取当前name的value值
2013/12/20 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
2015/03/03 Javascript
jQuery实现浮动层随浏览器滚动条滚动的方法
2015/09/22 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
IScroll那些事_当内容不足时下拉刷新的解决方法
2017/07/18 Javascript
vue修改vue项目运行端口号的方法
2017/08/04 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
2017/10/31 Javascript
angular 内存溢出的问题解决
2018/07/12 Javascript
vue + element-ui的分页问题实现
2018/12/17 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
基于element-ui对话框el-dialog初始化的校验问题解决
2020/09/11 Javascript
python读取word文档的方法
2015/05/09 Python
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
python语音识别实践之百度语音API
2018/08/30 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
Python 读取xml数据,cv2裁剪图片实例
2020/03/10 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
英国日常交易网站:Wowcher
2018/09/04 全球购物
Java程序员综合测试题
2014/04/25 面试题
学生安全承诺书
2014/05/22 职场文书
商务英语专业大学生职业生涯规划书
2014/09/14 职场文书
会计实训总结范文
2015/08/03 职场文书
《坐井观天》教学反思
2016/02/18 职场文书
MySQL 逻辑备份 into outfile
2022/05/15 MySQL