用于消费的python kafka不起作用

用于消费的python kafka不起作用,python,apache-kafka,kafka-python,Python,Apache Kafka,Kafka Python,我可以给卡夫卡写信。然而,消费并不起作用 kafka = KafkaClient(kafka_host_list) consumer = SimpleConsumer(kafka,'topic-test-development','topic-test-development') No handlers could be found for logger "kafka.conn" Traceback (most recent call last): File "/home/ubuntu/w

我可以给卡夫卡写信。然而,消费并不起作用

kafka = KafkaClient(kafka_host_list)
consumer = SimpleConsumer(kafka,'topic-test-development','topic-test-development')

No handlers could be found for logger "kafka.conn"
Traceback (most recent call last):
  File "/home/ubuntu/workspace/feed-tests/tests/kafka_consumer.py", line 44, in <module>
    consumer = SimpleConsumer(kafka,'topic-test-development','topic-test-development')
  File "/usr/local/lib/python2.7/dist-packages/kafka/consumer/simple.py", line 126, in __init__
    auto_commit_every_t=auto_commit_every_t)
  File "/usr/local/lib/python2.7/dist-packages/kafka/consumer/base.py", line 75, in __init__
    self.fetch_last_known_offsets(partitions)
  File "/usr/local/lib/python2.7/dist-packages/kafka/consumer/base.py", line 101, in fetch_last_known_offsets
    check_error(resp)
  File "/usr/local/lib/python2.7/dist-packages/kafka/common.py", line 230, in check_error
    raise response
kafka.common.FailedPayloadsError
kafka=kafka客户端(卡夫卡主机列表)
消费者=简单消费者(卡夫卡,'topic-test-development','topic-test-development')
找不到记录器“kafka.conn”的处理程序
回溯(最近一次呼叫最后一次):
文件“/home/ubuntu/workspace/feed tests/tests/kafka_consumer.py”,第44行,在
消费者=简单消费者(卡夫卡,'topic-test-development','topic-test-development')
文件“/usr/local/lib/python2.7/dist-packages/kafka/consumer/simple.py”,第126行,在__
自动提交每一次=自动提交每一次)
文件“/usr/local/lib/python2.7/dist-packages/kafka/consumer/base.py”,第75行,在__
self.fetch\u最后一个已知的\u偏移量(分区)
文件“/usr/local/lib/python2.7/dist packages/kafka/consumer/base.py”,第101行,在fetch\u last\u known\u offset中
检查错误(resp)
文件“/usr/local/lib/python2.7/dist-packages/kafka/common.py”,第230行,检查错误
提出回应
kafka.common.FailedPayloadsError

注意
找不到记录器“kafka.conn”的处理程序

为记录器添加代码:

logging.basicConfig(
    format='%(asctime)s.%(msecs)s:%(name)s:%(thread)d:%(levelname)s:%(process)d:%(message)s',
    level=logging.DEBUG
)
运行并输出更多信息

2015-07-13 15:26:32158.158.830881119:kafka.conn:140247909795584:调试:17035:重新初始化主机的套接字连接01:9092
2015-07-13 15:26:32221.221.35591507:kafka.conn:140247909795584:ERROR:17035:无法连接到kafka broker主机01:9092

该代理似乎不可用……python kafka客户端的版本是什么?doc:group上有一个介绍:这个消费者的名称,用于偏移存储,如果连接到不支持偏移提交/获取(0.8.1.1之前的任何版本)的服务器,则必须是唯一的,然后必须将其设置为“无”(FROM:)我使用Kafka和python Kafka包装器的经验是,代理连接是脆弱的,这意味着当生产者尝试发送消息或消费者尝试将消息标记为已消费时,可以重置连接。您最好的选择是实现重试逻辑,因为我认为这个问题不会很快得到解决。我仍然看到它们到处出现。当我的客户与经纪人在不同的机器上时,我也有同样的错误。。。我深入研究了python kafka代码,发现代理将其名称发布为
localhost
,而客户端在获取代理主机名元数据为localhost时,会尝试与自身建立连接。。。我通过在
server.properties
中将
advised.host.name
设置为外部主机名来修复它