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 相关文章推荐
Django中处理出错页面的方法
Jul 15 Python
Python实现二叉搜索树
Feb 03 Python
Python3内置模块之json编解码方法小结【推荐】
Dec 09 Python
python selenium 查找隐藏元素 自动播放视频功能
Jul 24 Python
Python实现Singleton模式的方式详解
Aug 08 Python
python集合的创建、添加及删除操作示例
Oct 08 Python
python生成器用法实例详解
Nov 22 Python
Python中的全局变量如何理解
Jun 04 Python
如何利用Python动态模拟太阳系运转
Sep 04 Python
python 模拟登陆github的示例
Dec 04 Python
python字典按照value排序方法
Dec 28 Python
python中子类与父类的关系基础知识点
Feb 02 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
Access数据库导入Mysql的方法之一
2006/10/09 PHP
第十三节--对象串行化
2006/11/16 PHP
php 无限级 SelectTree 类
2009/05/19 PHP
php 读取shell管道传输过来的内容
2010/03/01 PHP
浅析php适配器模式(Adapter)
2014/11/25 PHP
PHP单例模式详细介绍
2015/07/01 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
奉献给JavaScript初学者的编写开发的七个细节
2011/01/11 Javascript
jQuery响应enter键的实现思路
2014/04/18 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
jQuery实现的简单排序功能示例【冒泡排序】
2017/01/13 Javascript
javascript自执行函数
2017/02/10 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
webpack配置的最佳实践分享
2017/04/21 Javascript
js实现图片上传预览原理分析
2017/07/13 Javascript
浅谈node的事件机制
2017/10/09 Javascript
js实现鼠标拖拽缩放div实例代码
2019/03/25 Javascript
在element-ui的select下拉框加上滚动加载
2019/04/18 Javascript
解决vue-cli@3.xx安装不成功的问题及搭建ts-vue项目
2020/02/09 Javascript
vue+node 实现视频在线播放的实例代码
2020/10/19 Javascript
vue中h5端打开app(判断是安卓还是苹果)
2021/02/26 Vue.js
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
python re正则匹配网页中图片url地址的方法
2018/12/20 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
python爬虫要用到的库总结
2020/07/28 Python
CSS3实现图片抽屉式效果的示例代码
2019/11/06 HTML / CSS
中国跨镜手机配件批发在线商店:TVC-Mall
2019/08/20 全球购物
记者节感言
2015/08/03 职场文书
2016关于读书活动的心得体会
2016/01/14 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书
Linux下搭建SFTP服务器的命令详解
2022/06/25 Servers