Есть ли смысл вызывать poll() после product, если мы не используем обратный вызов доставки в kafka?

#python #apache-kafka #confluent-platform

#python #apache-kafka #слияние-платформа

Вопрос:

Мы пытаемся оптимизировать наше приложение на python, которое отправляет сообщение в тему kafka через клиент confluent python kafka, и с помощью confluent control Center мы можем проверить, доставлено ли конкретное сообщение в тему kafka или нет, поэтому теперь вопрос в том, должны ли мы использовать функцию poll() после product, поскольку обратный вызов доставки теперь удален и будетэто привело к повышению пропускной способности, если, скажем, мы создаем 100 тыс. сообщений за 1 сек.

 producer.produce( topic=topicName, value=msg, key=msg_key)
producer.poll(0) # Is poll now required
  

Мы используем confluent python api, который внутренне использует librdkaf, и в соответствии с этим, если запрос на получение успешно обработан брокером, то ответ об успешном завершении ставится в очередь отчетов о доставке и будет передан приложению при вызове опроса, поэтому, если опроса нет, означает ли это, что очередь доставки будет полностью заполнена через некоторое времяи может создавать проблемы.

Ответ №1:

Да, вам все равно нужно вызвать poll(), чтобы был запущен обратный вызов внутреннего отчета о доставке.

Но вы действительно хотите использовать обратный вызов отчета о доставке, иначе у вас нет указаний, могут ли сообщения создаваться или нет. По крайней мере, добавьте сообщение журнала для неудачных поставок.