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写的Discuz7.2版faq.php注入漏洞工具
Aug 06 Python
Django中处理出错页面的方法
Jul 15 Python
python matplotlib画图实例代码分享
Dec 27 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
Jan 06 Python
Python实现查找二叉搜索树第k大的节点功能示例
Jan 24 Python
python3实现mysql导出excel的方法
Jul 31 Python
关于多元线性回归分析——Python&SPSS
Feb 24 Python
Python PyQt5模块实现窗口GUI界面代码实例
May 12 Python
keras打印loss对权重的导数方式
Jun 10 Python
keras训练浅层卷积网络并保存和加载模型实例
Jul 02 Python
Python requests上传文件实现步骤
Sep 15 Python
在vscode中启动conda虚拟环境的思路详解
Dec 25 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
yii框架通过控制台命令创建定时任务示例
2014/04/30 PHP
支持中文、字母、数字的PHP验证码
2015/05/04 PHP
php自动更新版权信息显示的方法
2015/06/19 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
Laravel实现表单提交
2017/05/07 PHP
PHP Laravel中的Trait使用方法
2019/01/20 PHP
Js callBack 返回前一页的js方法
2008/11/30 Javascript
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
JavaScript高级程序设计 错误处理与调试学习笔记
2011/09/10 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
jquery实现弹出层效果实例
2015/05/19 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
JS如何设置iOS中微信浏览器的title
2016/11/22 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
微信小程序 仿美团分类菜单 swiper分类菜单
2017/04/12 Javascript
react-native ListView下拉刷新上拉加载实现代码
2017/08/03 Javascript
antd日期选择器禁止选择当天之前的时间操作
2020/10/29 Javascript
JS实现购物车基本功能
2020/11/08 Javascript
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python之yield表达式学习
2014/09/02 Python
改进Django中的表单的简单方法
2015/07/17 Python
python通过文件头判断文件类型
2015/10/30 Python
浅析Python中的多条件排序实现
2016/06/07 Python
2019 Python最新面试题及答案16道题
2019/04/11 Python
春节到了 教你使用python来抢票回家
2020/01/06 Python
Python中有几个关键字
2020/06/04 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
如何使用Pytorch搭建模型
2020/10/26 Python
linux系统下pip升级报错的解决方法
2021/01/31 Python
使用纯 CSS 创作一个脉动 loader效果的源码
2018/09/28 HTML / CSS
鲜果饮品店创业计划书
2014/01/21 职场文书
防沙治沙典型材料
2014/05/07 职场文书
政府会议通知范文
2015/04/15 职场文书
师德师风主题教育活动总结
2015/05/07 职场文书
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL