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获取远程文件大小的函数代码分享
May 13 Python
详解在Python程序中使用Cookie的教程
Apr 30 Python
matplotlib绘制动画代码示例
Jan 02 Python
Python使用装饰器进行django开发实例代码
Feb 06 Python
Python从文件中读取指定的行以及在文件指定位置写入
Sep 06 Python
Python 最强编辑器详细使用指南(PyCharm )
Sep 16 Python
python数据分析:关键字提取方式
Feb 24 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
Apr 14 Python
Python偏函数Partial function使用方法实例详解
Jun 17 Python
Windows下pycharm安装第三方库失败(通用解决方案)
Sep 17 Python
python opencv人脸识别考勤系统的完整源码
Apr 26 Python
使用Python拟合函数曲线
Apr 14 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更新记录的代码
2008/06/07 PHP
php页面缓存ob系列函数介绍
2012/10/18 PHP
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
php多用户读写文件冲突的解决办法
2013/11/06 PHP
php实现图片等比例缩放代码
2015/07/23 PHP
使用symfony命令创建项目的方法
2016/03/17 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
2017/02/14 PHP
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
Backbone.js框架中简单的View视图编写学习笔记
2016/02/14 Javascript
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
2017/12/25 jQuery
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
Vue用v-for给循环标签自身属性添加属性值的方法
2018/10/18 Javascript
BootStrap table实现表格行拖拽效果
2018/12/01 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
[03:46]DOTA2英雄基础教程 维萨吉
2013/12/11 DOTA
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
新手常见6种的python报错及解决方法
2018/03/09 Python
Python使用add_subplot与subplot画子图操作示例
2018/06/01 Python
python实现寻找最长回文子序列的方法
2018/06/02 Python
Python中dict和set的用法讲解
2019/03/28 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
Python多线程实现支付模拟请求过程解析
2020/04/21 Python
python 读取二进制 显示图片案例
2020/04/24 Python
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
linux面试题参考答案(11)
2016/11/26 面试题
2014年维修电工工作总结
2014/11/20 职场文书
地道战观后感2000字
2015/06/04 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书
公司年会主持词范文!
2019/05/07 职场文书
MySQL系列之十四 MySQL的高可用实现
2021/07/02 MySQL
nginx结合openssl实现https的方法
2021/07/25 Servers