python连接kafka并消费数据

本文介绍如何使用PyKafka库连接Kafka服务端,包括查看所有topics,遍历broker信息,以及通过生产者和消费者进行消息传递的实践。提供详细的代码示例和常见问题解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

连接kafka服务端查看topic

在idea里导入模块pykafka

编写代码

# 导入安装包
from pykafka import KafkaClient
# 设置客户端的连接信息
client = KafkaClient(hosts="hadoop01:9092,hadoop02:9092,hadoop03:9092")
# 打印所有的topic
print(client.topics)

查看所有的连接信息

# 设置循环次数
client = KafkaClient(hosts="hadoop01:9092,hadoop02:9092,hadoop03:9092")
for n in client.brokers:
    # 取host
    host = client.brokers[n].host
    # 取端口号
    port = client.brokers[n].port
    # 取broker.id
    id = client.brokers[n].id
    # 打印所有信息
    print("host=%s | port=%s | broker.id=%s " % (host, port, id))
测试生产者和消费者能否使用
在kafka命令行用已有topic开启生产者

bin/kafka-console-producer.sh --broker-list 192.168.147.136:9092,192.168.147.137:9092,192.168.147.138:9092 --topic test02

idea编写消费者代码
client = KafkaClient(hosts="hadoop01:9092,hadoop02:9092,hadoop03:9092")
# 确定使用的topic
topic = client.topics['test02']
consumer = topic.get_simple_consumer(
    # 设置消费者组,没有可不写
    consumer_group="consumer",
    # 设置从头开始消费
    reset_offset_on_start=True
)
# 获取被消费数据的偏移量和消费内容
for message in consumer:
    if message is not None:
    #打印消费信息
        print(message.offset, message.value)

若是消费不成功,这有可能是编码问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值