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 ip正则式
May 07 Python
用tensorflow搭建CNN的方法
Mar 05 Python
selenium+python 去除启动的黑色cmd窗口方法
May 22 Python
python中实现控制小数点位数的方法
Jan 24 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
Jun 04 Python
浅谈Django+Gunicorn+Nginx部署之路
Sep 11 Python
python内置模块collections知识点总结
Dec 19 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
Apr 10 Python
Keras-多输入多输出实例(多任务)
Jun 22 Python
如何基于pandas读取csv后合并两个股票
Sep 25 Python
Python pathlib模块使用方法及实例解析
Oct 05 Python
python判断all函数输出结果是否为true的方法
Dec 03 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服务器页面间跳转实现方法
2012/08/02 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
Laravel 5框架学习之表单验证
2015/04/08 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
2016/05/27 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
Swoole4.4协程抢占式调度器详解
2019/05/23 PHP
javascript:;与javascript:void(0)使用介绍
2013/06/05 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
jQuery 中DOM 操作详解
2015/01/13 Javascript
jQuery中innerHeight()方法用法实例
2015/01/19 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
2016/01/26 Javascript
对js eval()函数的一些见解
2016/08/15 Javascript
Bootstrap中点击按钮后变灰并显示加载中实例代码
2016/09/23 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
2017/01/23 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
在Python中使用PIL模块处理图像的教程
2015/04/29 Python
Python yield 使用方法浅析
2017/05/20 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
HTML5使用ApplicationCache接口实现离线缓存技术解决离线难题
2012/12/13 HTML / CSS
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
Michael Kors英国官网:美国奢侈品品牌
2019/11/13 全球购物
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
介绍下WebSphere的安全性
2013/01/31 面试题
开水果连锁店创业计划书
2013/12/29 职场文书
高一地理教学反思
2014/01/18 职场文书
品牌服务方案
2014/06/03 职场文书
导游词之江南园林狮子林
2019/09/16 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL
php png失真的原因及解决办法
2021/11/17 PHP