我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python脚本消费kafka数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python脚本消费kafka数据

kafka简介(摘自百度百科)

一、简介:
详见:https://blog.csdn.net/Beyond_F4/article/details/80310507

二、安装
详见博客:https://blog.csdn.net/beyond_f4/article/details/80095689              

三、按照官网的样例,先跑一个应用
1、生产者:
from kafka import KafkaProducer

producer = KafkaProducer(bootstrap_servers=['172.21.10.136:9092'])  #此处ip可以是多个['0.0.0.1:9092','0.0.0.2:9092','0.0.0.3:9092' ]

for i in range(3):
    msg = "msg%d" % i
    producer.send('test', msg)
producer.close()

2、消费者(简单demo):
from kafka import KafkaConsumer

consumer = KafkaConsumer('test',
                         bootstrap_servers=['172.21.10.136:9092'])
                         
for message in consumer:
    print ("%s:%d:%d: key=%s value=%s" % (message.topic, message.partition,
                                          message.offset, message.key,
                                          message.value))


启动后生产者、消费者可以正常消费。

3、消费者(消费群组)
from kafka import KafkaConsumer

consumer = KafkaConsumer('test',
                         group_id='my-group',
                         bootstrap_servers=['172.21.10.136:9092'])
                         
for message in consumer:
    print ("%s:%d:%d: key=%s value=%s" % (message.topic, message.partition,
                                          message.offset, message.key,
                                          message.value))
                                          
启动多个消费者,只有其中可以可以消费到,满足要求,消费组可以横向扩展提高处理能力

4、消费者(读取目前最早可读的消息)
from kafka import KafkaConsumer

consumer = KafkaConsumer('test',
                         auto_offset_reset='earliest',
                         bootstrap_servers=['172.21.10.136:9092'])
                         
for message in consumer:
    print ("%s:%d:%d: key=%s value=%s" % (message.topic, message.partition,
                                          message.offset, message.key,
                                          message.value))
                                         
auto_offset_reset:重置偏移量,earliest移到最早的可用消息,latest最新的消息,默认为latest
源码定义:{'smallest': 'earliest', 'largest': 'latest'}

5、消费者(手动设置偏移量)
from kafka import KafkaConsumer
from kafka.structs import TopicPartition

consumer = KafkaConsumer('test',
                         bootstrap_servers=['172.21.10.136:9092'])

print consumer.partitions_for_topic("test")  #获取test主题的分区信息
print consumer.topics()  #获取主题列表
print consumer.subscription()  #获取当前消费者订阅的主题
print consumer.assignment()  #获取当前消费者topic、分区信息
print consumer.beginning_offsets(consumer.assignment()) #获取当前消费者可消费的偏移量
consumer.seek(TopicPartition(topic=u'test', partition=0), 5)  #重置偏移量,从第5个偏移量消费
for message in consumer:
    print ("%s:%d:%d: key=%s value=%s" % (message.topic, message.partition,
                                          message.offset, message.key,
                                          message.value))
                                          
6、消费者(订阅多个主题)
from kafka import KafkaConsumer
from kafka.structs import TopicPartition

consumer = KafkaConsumer(bootstrap_servers=['172.21.10.136:9092'])
consumer.subscribe(topics=('test','test0'))  #订阅要消费的主题
print consumer.topics()
print consumer.position(TopicPartition(topic=u'test', partition=0)) #获取当前主题的最新偏移量
for message in consumer:
    print ("%s:%d:%d: key=%s value=%s" % (message.topic, message.partition,
                                          message.offset, message.key,
                                          message.value))
                                          
7、消费者(手动拉取消息)
from kafka import KafkaConsumer
import time

consumer = KafkaConsumer(bootstrap_servers=['172.21.10.136:9092'])
consumer.subscribe(topics=('test','test0'))
while True:
    msg = consumer.poll(timeout_ms=5)   #从kafka获取消息
    print msg
    time.sleep(1)
    
8、消费者(消息挂起与恢复)
from kafka import KafkaConsumer
from kafka.structs import TopicPartition
import time

consumer = KafkaConsumer(bootstrap_servers=['172.21.10.136:9092'])
consumer.subscribe(topics=('test'))
consumer.topics()
consumer.pause(TopicPartition(topic=u'test', partition=0))
num = 0
while True:
    print num
    print consumer.paused()   #获取当前挂起的消费者
    msg = consumer.poll(timeout_ms=5)
    print msg
    time.sleep(2)
    num = num + 1
    if num == 10:
        print "resume..."
        consumer.resume(TopicPartition(topic=u'test', partition=0))
        print "resume......"
        
pause执行后,consumer不能读取,直到调用resume后恢复。

如果对您有帮助,记得给我点赞诺

如果对您有帮助,记得给我点赞诺

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python脚本消费kafka数据

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

下载Word文档

猜你喜欢

Python脚本消费kafka数据

kafka简介(摘自百度百科)一、简介:详见:https://blog.csdn.net/Beyond_F4/article/details/80310507二、安装详见博客:https://blog.csdn.net/beyond_f4/
2023-01-31

kafka查看消费数据

在老版本中,使用kafka-run-class.sh 脚本进行查看。但是对于最新版本,kafka-run-class.sh 已经不能使用,必须使用另外一个脚本才行,它就是kafka-consumer-groups.sh普通版查看所有组要想查
2023-01-31

python怎么消费kafka数据并写入数据库

要使用Python消费Kafka数据并写入数据库,您可以遵循以下步骤:安装kafka-python库:使用pip安装kafka-python库,它是一个用于与Kafka交互的Python库。可以使用以下命令进行安装:pip install
2023-10-21

kafka消费不到数据问题

出问题现象 最近项目使用到了kafka,别的系统作为生产者,我们系统作为消费者,但是经常出现消费者消费一段时间就不消费了,根本就触发不了kafkaListener的拉取动作。换一个消费者组,从最新的位置消费又可以消费的到,但是消费一段时间就
2023-08-16

python怎么实现消费kafka数据并写入数据库

要消费Kafka数据并将其写入数据库,可以按照以下步骤进行操作:1. 首先,确保已经安装了kafka-python库,可以使用以下命令安装:```pip install kafka-python```2. 导入所需的模块:```python
2023-09-14

kafka消费者kafka-console-consumer接收不到数据的解决

这篇文章主要介绍了kafka消费者kafka-console-consumer接收不到数据的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-03-07

kafka消费者kafka-console-consumer接收不到数据如何解决

这篇“kafka消费者kafka-console-consumer接收不到数据如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看
2023-07-05

kafka消费不到数据的排查过程

这篇文章主要介绍了kafka消费不到数据的排查过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-02-08

python rsync 数据同步脚本

#!/usr/bin/env python# -*- coding: utf-8 -*-import pexpectimport timeimport tracebackdef doRsync(user,passwd,ip,srcDir,d
2023-01-31

怎么解决kafka消费不到远程bootstrap-server数据的问题

这篇文章主要介绍“怎么解决kafka消费不到远程bootstrap-server数据的问题”,在日常操作中,相信很多人在怎么解决kafka消费不到远程bootstrap-server数据的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好
2023-06-21

使用 sarama 监控 Kafka 生产者和消费者的性能数据

从现在开始,我们要努力学习啦!今天我给大家带来《使用 sarama 监控 Kafka 生产者和消费者的性能数据》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一
使用 sarama 监控 Kafka 生产者和消费者的性能数据
2024-04-04

python oracle数据库备份脚本

学习python,将shell备份脚本改成了python脚本练手.python oracle备份脚本一例如下。#!/usr/bin/env python  # -*- coding: utf-8 -*- import timeimport 
2023-01-31

Python脚本监控mysql数据库,P

任务:应帅气的领导要求,需要监控生产环境mysql和mongo数据库服务。不仅要connect successful还要进行数据交互进一步确认数据库服务正常。思路:mysql和mongo 数据库ip、端口、用户名、密码、认证库(mongo)
2023-01-31

用python备份mysql数据库的脚本

一、前言             刚刚开始学python,还在看一套简单的python教学视频,但还未看完,简单的写了个mysql备份脚本,也算是第一个python脚本的×××座哈~~,因为才刚刚才开始,对python 的class 、fu
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录