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定时检查启动某个exe程序适合检测exe是否挂了
Jan 21 Python
Python中zip()函数用法实例教程
Jul 31 Python
Python删除空文件和空文件夹的方法
Jul 14 Python
python中模块的__all__属性详解
Oct 26 Python
python2.7 json 转换日期的处理的示例
Mar 07 Python
python求质数的3种方法
Sep 28 Python
使用Django2快速开发Web项目的详细步骤
Jan 06 Python
python清空命令行方式
Jan 13 Python
python time()的实例用法
Nov 03 Python
python对输出的奇数偶数排序实例代码
Dec 04 Python
python简单实现插入排序实例代码
Dec 16 Python
宝塔更新Python及Flask项目的部署
Apr 11 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
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
PHP MemCached 高级缓存应用代码
2010/08/05 PHP
PHP变量内存分配问题记录整理
2013/11/27 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
js宝典学习笔记(上)
2007/01/10 Javascript
jquery获得option的值和对option进行操作
2013/12/13 Javascript
Jquery获得控件值的三种方法总结
2014/02/13 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
jQuery表单域选择器用法分析
2015/02/10 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
2016/05/16 Javascript
js多功能分页组件layPage使用方法详解
2016/05/19 Javascript
JS代码实现根据时间变换页面背景效果
2016/06/16 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
angularJS+requireJS实现controller及directive的按需加载示例
2017/02/20 Javascript
jquery拼接ajax 的json和字符串拼接的方法
2017/03/11 Javascript
浅谈angular2路由预加载策略
2017/10/04 Javascript
js实现手机web图片左右滑动效果
2017/12/29 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
vuex存储token示例
2019/11/11 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
django 删除数据库表后重新同步的方法
2018/05/27 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
python实现门限回归方式
2020/02/29 Python
使用Python发现隐藏的wifi
2020/03/04 Python
python tqdm实现进度条的示例代码
2020/11/10 Python
10张动图学会python循环与递归问题
2021/02/06 Python
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
优秀应届毕业生自荐信
2013/11/16 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
2014年学前班工作总结
2014/12/08 职场文书
git中cherry-pick命令的使用教程
2022/06/25 Servers