使用Kafka-python处理生产者和消费者

时间:2019-08-27 04:43:29

标签: python apache-kafka apache-zookeeper broker kafka-python

首先,我想说我是Kafka的新手,也是stackoverflow的新手,所以如果不能以正确的方式提出这个问题,我感到抱歉。 我正在尝试使用kafka-python实现生产者-消费者。 但是它不能正常工作

我已经安装了zookeeper,并且已启动并运行它。我也有kafka服务器。但是当我通过pycharm运行消费者和生产者时,接收者没有收到消息。消费者继续运行,但生产者停止了。

consumer.py

from kafka import KafkaConsumer

consumer = KafkaConsumer('test', group_id='test-consumer-group', 
bootstrap_servers=['my_ip:9092'], api_version=(0, 10, 1),
                     auto_offset_reset='earliest')
print("Consuming messages")
for msg in consumer:
    print(msg)

producer.py

from kafka import KafkaProducer

print('above producer')
producer = KafkaProducer(bootstrap_servers=['my_ip:9092'], api_version=(0, 10, 1),
                         compression_type=None
                         )
print('after producer')
for _ in range(100):
    producer.send('test', b'HELLO NITHIN chandran')

print('after sending messages')

在my_ip处,我已从ipconfig中提供了我的系统IP地址。

consumer.py输出-

Consuming messages

consumer.py不会停止运行

producer.py输出-

above producer
after producer
after sending messages

Process finished with exit code 0

producer.py停止运行,并且该过程已完成,如输出所示。

请帮助我解决此问题。 感谢所有帮助

1 个答案:

答案 0 :(得分:1)

您的代码正常,问题出在您的代理配置上。请将其设置为初始配置,只需将log.dirs更改为要存储Kafka数据的路径即可。 更改配置文件后,请执行以下步骤:

  • 停止动物园管理员和卡夫卡
  • 同时清除kafka和Zookeeper数据目录
  • 运行zookeeper和kafa
  • 开始消费者和生产者