关于python中kafka的producer和consumer推送消费失败问题

在家使用公司电脑测试Kafka服务时遇到推送任务失败的问题。尽管Zookeeper正常,但删除并重启Kafka的日志文件后问题依旧。最终通过调整Kafka配置文件中的IP设置成功解决了问题。

用的公司电脑,之前在公司的时候用本机搭建了一个kafka的服务,之前用的一直好好的,今天在家用本机测试的时候,发现producer往kafka推送任务的时候失败,在删除了kafka的log文件之后再从新启动,log文件又回来了,但是就是不能推送,zookeeper正常,kafka服务正常,就是不行,后来在调整了kafka的配置文件中的允许ip之后服务可以正常了。

### 使用Python连接Kafka 为了实现Python程序与Apache Kafka之间的通信,通常会采用`kafka-python`库。这个库提供了简单易用的API来创建生产者消费者实例以便于消息传递。 #### 安装依赖项 首先需要确保环境中已经安装了`kafka-python`模块: ```bash pip install kafka-python ``` #### 创建Kafka生产者并发送消息 下面是一段简单的代码片段用于初始化一个KafkaProducer对象并向指定主题发布消息[^1]: ```python from kafka import KafkaProducer import json producer = KafkaProducer(bootstrap_servers=['localhost:9092'], value_serializer=lambda x: json.dumps(x).encode('utf-8')) data = {'number': 1} producer.send('test-topic', value=data) # 确保所有事件都被刷新到服务器端 producer.flush() producer.close() ``` 这段脚本定义了一个新的生产者,并指定了目标Kafka集群的位置以及序列化方式;接着构建了一条测试消息并通过调用send方法将其推送到名为'test-topic'的主题上;最后通过flush函数保证所有的缓冲区数据都已成功提交给Broker之后关闭连接。 #### 构建Kafka消费者接收消息 同样地,在另一台机器或者同一进程中启动如下所示的一个基本消费者逻辑来监听特定主题的消息流: ```python from kafka import KafkaConsumer consumer = KafkaConsumer( 'test-topic', bootstrap_servers=['localhost:9092'], auto_offset_reset='earliest', enable_auto_commit=True, group_id='my-group', value_deserializer=lambda x: json.loads(x.decode('utf-8'))) for message in consumer: print(f"{message.topic}:{message.partition}:{message.offset}: key={message.key} value={message.value}") ``` 这里配置了一个订阅:test-topic的新消费者实例,设置了自动重置偏移量策略为最早记录位置(`auto_offset_reset='earliest'`),启用了消费组机制以支持分布式处理场景下的负载均衡特性。每当有新消息到达时就会触发迭代器循环体内的打印语句输出相关信息至控制台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值