广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python: kafka-python
  • 952
分享到

Python: kafka-python

Pythonkafkapython 2023-01-31 01:01:15 952人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

背景 我们有个数据处理平台,有两个用 Docker 运行的数据处理模块,分别是:data_api, 和 processor_api,故名思义: data_api: 接受数据; processor_api: 处理数据; 数据处理简单

背景

我们有个数据处理平台,有两个用 Docker 运行的数据处理模块,分别是:data_api, 和 processor_api,故名思义:

data_api:      接受数据;
processor_api: 处理数据;

数据处理简单架构

Python: kafka-python版本差异导致的问题

踩坑经过

一直以来,这两个模块都是相安无事,稳定得很,然而在九月份因为更新 kafka 连接地址重启了容器,就出了问题。

只要用过 docker 的童鞋,都会对 docker logs 很熟悉,这次问题就是,因为 docker 的日志狂刷,按照默认的配置,日志会全部写入 JSON.log,大约一小时就能刷出 2G 的日志;

于是感觉特别的神奇,跑了快两年都没这问题,改下链接地址就有这么多日志输出,但是明明容器是正常在工作的。

排查半天一直找不出原因,就先配置了日志转储才免得磁盘告警。

今天看到那一堆日志时,发现很多 kafka 链接失败日志:

...
[W 181011 14:18:24 conn:625] <BrokerConnection node_id=18 host=xxxx/xxxx(马赛克) port=9093>: close() called on disconnected connection with error: ConnectionError: Unable to connect to any of the names for xxxx/xxxx(马赛克):9093
[E 181011 14:18:24 conn:289] Unable to connect to any of the names for xxxx/xxxx(马赛克):9093
....

之前以为是kafka架构的问题没去管,现在还是去谷歌一下,比较幸运地似乎找到一些原因和解决方案,

Python: kafka-python版本差异导致的问题

相关的链接:

https://GitHub.com/dpkp/kafka...
Https://github.com/dpkp/kafka...
大约的意思是因为查找域名失败导致这个bug触发了。

于是事不延迟,找台机器升级下 kafka-python 版本到 1.4.0 看看,升级完之后发现日志大幅度减少了。
Python: kafka-python版本差异导致的问题

golang 视频大优惠,如不感兴趣略过

升级后的日志大约是升级前的九分之一了,这样来看很明显就是 1.3.5 的问题了。本想着这样就愉快的解决了,然而调整完就有 kafka 消费延迟的告警了,因为一直时不时有少量的消费延迟,所以也没在意。

直到第二天,累积的延迟量已经触发了第二级别的阈值了,消费延迟超过 30 万条了,立马上监控看看
Python: kafka-python版本差异导致的问题

lag 图就是延迟条数了,大约 11 号 18点的时候,也就是我们更新版本重启容器之后,在数据写入并没多大改变情况下,lag 数拼命增长,直接去到 80 万了,而且后面还在持续上涨;

首先排除因素就是 processor_api 消费速度,因为在更新前,一直是不会有延迟这么多的。

先回滚到旧版本看看,看到延迟立马消失了。
Python: kafka-python版本差异导致的问题
基本就能定位这个消费延迟的问题是版本导致的。

既然是消费延迟,那就得看消费速度监控了。刚才已经说了,消费速度是绝对够的,只是不知道为什么还是有延迟而已。

昨天到今天高延迟时的监控图图:
Python: kafka-python版本差异导致的问题

时间太长看不出什么问题,选小区间再看看:
Python: kafka-python版本差异导致的问题

这次看到消费图表,是断断续续的,而看消费者的日志,也看到时不时没有东西打印,仿佛消费完了那样。但是从延迟来看,数据应该是一直有的,不应该出现没有日志打印的情况。

对比下正常时候的消费速率图:
Python: kafka-python版本差异导致的问题

正常消费是连续的平稳的,不应该是断断续续有尖峰的,怀疑是 kafka 消费权重没有均匀等问题,找了 kafka 的童鞋,看能不能看到当前 kafka 消费者分配情况。

kafka 童鞋给了一个神奇的回复,说 kafka 正在 rebalance ...

Consumer group panama_opsys_detect is rebalancing
当 kafka 在 rebalancing 状态,是不能够消费的。这样看起来的话,应该是 kafka 在频繁的 rebalance 了。。

既然消费者进程和链接都没有变化,其实不应该短时间内频繁 rebalance 的。

因为前面的经验,所以现在都很大可能是版本问题了。

直接去 kafka-Python 官网,找了较新的版本 1.4.2,更新之后,消费和日志都正常了。

欢迎加入Python ×××流:365534424
转载请注明来源: https://segmentfault.com/a/11...

--结束END--

本文标题: Python: kafka-python

本文链接: https://www.lsjlt.com/news/183227.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python: kafka-python
    背景 我们有个数据处理平台,有两个用 docker 运行的数据处理模块,分别是:data_api, 和 processor_api,故名思义: data_api: 接受数据; processor_api: 处理数据; 数据处理简单...
    99+
    2023-01-31
    Python kafka python
  • 安装Kafka-Python
    安装Kafka-Python下载Kafka-Python压缩包从https://github.com/mumrah/kafka-python/releases中下载最新的release包,此时最新的包为kafka-python-0.9.3....
    99+
    2023-01-31
    Kafka Python
  • python 操作kafka
    https://pypi.python.org/pypi/pykafka 最近项目中总是跟java配合,我一个写python的程序员,面对有复杂数据结构的java代码转换成python代码,确实是一大难题,有时候或多或少会留有一点...
    99+
    2023-01-31
    操作 python kafka
  • python连接kafka
    https://blog.csdn.net/see_you_see_me/article/details/78468421https://zhuanlan.zhihu.com/p/38330574from kafka import Kafk...
    99+
    2023-01-31
    python kafka
  • 使用 Python 操作 Kafka
    使用 Python 操作 Kafka Apache Kafka 是一个分布式的流处理平台,它具有高吞吐量、可扩展性和持久性的特点。通过使用 Python 的 kafka-python 模块,我们可以方...
    99+
    2023-09-26
    python kafka 开发语言
  • kafka-python安装实践
    #网上看的教程都很麻烦,也不知道为什么,反正我是pip install setuptoolspip install kafka-python就OK了setuptools是kafka-python的依赖库 ...
    99+
    2023-01-31
    kafka python
  • Python脚本消费kafka数据
    kafka简介(摘自百度百科) 一、简介: 详见:https://blog.csdn.net/Beyond_F4/article/details/80310507 二、安装 详见博客:https://blog.csdn.net/bey...
    99+
    2023-01-31
    脚本 数据 Python
  • python对kafka的基本操作
    from kafka import KafkaProducerfrom kafka import KafkaConsumerfrom kafka.structs import TopicPartitionimport time boots...
    99+
    2023-01-31
    操作 python kafka
  • Kafka系列3-python版本pro
    直接上代码了: # -*- coding: utf-8 -*- ''' 使用kafka-Python 1.3.3模块 ''' import sys import time import json from kafka im...
    99+
    2023-01-31
    版本 系列 Kafka
  • Python中Kafka的作用是什么
    本篇文章为大家展示了Python中Kafka的作用是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问题,...
    99+
    2023-06-14
  • python连接kafka的方法是什么
    要连接Kafka,可以使用Kafka-Python库。以下是一个简单的示例代码,演示如何连接Kafka并发送消息:```python...
    99+
    2023-09-14
    python kafka
  • Python使用Kafka处理数据的方法详解
    目录一、安装Kafka-Python包二、生产者三、消费者四、批量发送和批量消费五、总结Kafka是一个分布式的流数据平台,它可以快速地处理大量的实时数据。Python是一种广泛使用...
    99+
    2023-05-16
    Python Kafka处理数据 Python Kafka数据 Python 处理数据 Python Kafka
  • Python如何调用kafka进行构建与应用
    本篇文章为大家展示了Python如何调用kafka进行构建与应用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。近期遇到一个需求就是我们需要把当前比较耗费资源的接口开发成异步通讯的机制,简单来说就是有...
    99+
    2023-06-16
  • python怎么消费kafka数据并写入数据库
    要使用Python消费Kafka数据并写入数据库,您可以遵循以下步骤: 安装kafka-python库:使用pip安装kafka...
    99+
    2023-10-21
    python kafka 数据库
  • python怎么结合shell自动创建kafka的连接器
    这篇“python怎么结合shell自动创建kafka的连接器”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python怎么...
    99+
    2023-06-30
  • python怎么实现消费kafka数据并写入数据库
    要消费Kafka数据并将其写入数据库,可以按照以下步骤进行操作:1. 首先,确保已经安装了kafka-python库,可以使用以下命...
    99+
    2023-09-14
    python kafka 数据库
  • 【Kafka】Kafka Stream简单使用
    一、实时流式计算 1. 概念 一般流式计算会与批量计算相比较。在流式计算模型中,输入是持续的,可以认为在时间上是无界的,也就意味着,永远拿不到全量数据去做计算。同时,计算结果是持续输出的,也即计算结果在时间上也是无界的。流式计算一般对实...
    99+
    2023-08-30
    java kafka 微服务 Kafka Stream 实时流式计算
  • python结合shell自动创建kafka的连接器实战教程
    目录环境安装连接oracle的python包获取oracle表信息去掉多余部分shell 脚本处理表信息文件增强版处理表信息脚本环境 cat /etc/redhat-release ...
    99+
    2022-11-10
  • Python 检测系统时间,k8s版本,redis集群,etcd,mysql,ceph,kafka
    线上有一套k8s集群,部署了很多应用。现在需要对一些基础服务做一些常规检测,比如:系统时间,要求:k8s的每一个节点的时间,差值上下不超过2秒k8s版本,要求:k8s的每一个节点的版本必须一致redis集群,要求:1. 查看cluster ...
    99+
    2023-01-31
    集群 检测系统 版本
  • Kafka之kafka-topics.sh如何使用
    本文小编为大家详细介绍“Kafka之kafka-topics.sh如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Kafka之kafka-topics.sh如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作