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线程锁(thread)学习示例
Dec 04 Python
python中Genarator函数用法分析
Apr 08 Python
Python中的错误和异常处理简单操作示例【try-except用法】
Jul 25 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
Sep 25 Python
Python绘制七段数码管实例代码
Dec 20 Python
Django使用HttpResponse返回图片并显示的方法
May 22 Python
Python3实现获取图片文字里中文的方法分析
Dec 13 Python
Python实现查找数组中任意第k大的数字算法示例
Jan 23 Python
Pandas读写CSV文件的方法示例
Mar 27 Python
python3 sleep 延时秒 毫秒实例
May 04 Python
Python 列表反转显示的四种方法
Nov 16 Python
python 爬取哔哩哔哩up主信息和投稿视频
Jun 07 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基础知识:控制结构
2006/12/13 PHP
PHP获取指定月份第一天和最后一天的方法
2015/07/18 PHP
Yii2 批量插入、更新数据实例
2017/03/15 PHP
php 7新特性之类型申明详解
2017/06/06 PHP
js如何获取file控件的完整路径具体实现代码
2013/05/15 Javascript
JS 仿腾讯发表微博的效果代码
2013/12/25 Javascript
让html页面不缓存js的实现方法
2014/10/31 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
2016/05/31 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
用vue快速开发app的脚手架工具
2018/06/11 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
原生JS+HTML5实现的可调节写字板功能示例
2018/08/30 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
小程序视频或音频自定义可拖拽进度条的示例代码
2018/09/30 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
判断“命令按钮”是否被鼠标单击详解
2019/07/31 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
2019/08/01 Javascript
vue分页插件的使用方法
2019/12/25 Javascript
NodeJS多种创建WebSocket监听的方式(三种)
2020/06/04 NodeJs
js实现跳一跳小游戏
2020/07/31 Javascript
Python设计模式之代理模式实例
2014/04/26 Python
为python设置socket代理的方法
2015/01/14 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
2019/08/13 Python
python如何对链表操作
2020/10/10 Python
Python析构函数__del__定义原理解析
2020/11/20 Python
CSS3 真的会替代 SCSS 吗
2021/03/09 HTML / CSS
岗位职责的构建方法
2014/02/01 职场文书
洗发露广告词
2014/03/14 职场文书
党员群众路线承诺书
2014/05/20 职场文书
2014年电工工作总结
2014/11/20 职场文书
事业单位年度考核评语
2014/12/31 职场文书
代理词怎么写
2015/05/25 职场文书
天鹅湖观后感
2015/06/09 职场文书
2019幼儿园感恩节活动策划书
2019/11/28 职场文书
详解Python描述符的工作原理
2021/06/11 Python