2016-05-17 3 views
1

Я пишу простой код в python 2.7, который использует обмен сообщениями из темы apache kafka. Код состоит в следующем:kafka-python raise kafka.errors.ConsumerFetchSizeTooSmall

from kafka import SimpleConsumer,KafkaClient 
group = "my_group_test" 
client = KafkaClient('localhost:9092') 
cons = SimpleConsumer(client, group, "my_topic") 
messages = cons.get_messages(count=1000,block=False) 

Но возводит это исключение:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/kafka/consumer/simple.py", line 285, in get_messages 
    update_offset=False) 
    File "/usr/local/lib/python2.7/dist-packages/kafka/consumer/simple.py", line 320, in _get_message 
    self._fetch() 
    File "/usr/local/lib/python2.7/dist-packages/kafka/consumer/simple.py", line 425, in _fetch 
    raise ConsumerFetchSizeTooSmall() 
kafka.errors.ConsumerFetchSizeTooSmall 

Как я мог изменить этот параметр (ConsumerFetchSize) для того, чтобы сделать этот код работать?

ответ

0

Я нашел решение, , используя параметр max_buffer_size в SimpleConsumer.

Рабочий код:

#the size is adherent with my need but is totally arbitrary 
cons = SimpleConsumer(client, group, "my_topic",max_buffer_size=9932768)