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 相关文章推荐
Flask SQLAlchemy一对一,一对多的使用方法实践
Feb 10 Python
Python3实战之爬虫抓取网易云音乐的热门评论
Oct 09 Python
Python 判断文件或目录是否存在的实例代码
Jul 19 Python
python执行精确的小数计算方法
Jan 21 Python
Python socket实现多对多全双工通信的方法
Feb 13 Python
python 处理telnet返回的More,以及get想要的那个参数方法
Feb 14 Python
Python 循环终止语句的三种方法小结
Jun 24 Python
详解python内置常用高阶函数(列出了5个常用的)
Feb 21 Python
Python爬虫获取豆瓣电影并写入excel
Jul 31 Python
Python unittest discover批量执行代码实例
Sep 08 Python
Python机器学习之逻辑回归
May 11 Python
使用Django框架创建项目
Jun 10 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者的疑难问答(2)
2006/10/09 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
2013/07/01 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
JQuery从头学起第三讲
2010/07/06 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
2012/02/16 Javascript
js简单实现用户注册信息的校验代码
2013/11/15 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
node.js中的path.join方法使用说明
2014/12/08 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
JavaScript检测字符串中是否含有html标签实现方法
2015/07/01 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
vue-test-utils初使用详解
2019/05/23 Javascript
vue实现Input输入框模糊查询方法
2021/01/29 Javascript
JS常用跨域方法实现原理解析
2020/12/09 Javascript
linux服务器快速卸载安装node环境(简单上手)
2021/02/22 Javascript
python网络编程学习笔记(一)
2014/06/09 Python
python生成二维码的实例详解
2017/10/29 Python
详解python里的命名规范
2018/07/16 Python
python pandas读取csv后,获取列标签的方法
2018/11/12 Python
在django中,关于session的通用设置方法
2019/08/06 Python
详解pycharm连接不上mysql数据库的解决办法
2020/01/10 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
个人自我鉴定怎么写
2013/10/28 职场文书
员工拓展培训方案
2014/02/15 职场文书
致标枪运动员加油稿
2014/02/15 职场文书
安全教育实施方案
2014/03/02 职场文书
商务英语专业求职信
2014/06/26 职场文书
建筑横幅标语
2014/10/09 职场文书
借钱欠条怎么写
2015/07/03 职场文书
运动会加油稿
2015/07/22 职场文书
《秋天的怀念》教学反思
2016/02/17 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书