Штормовая топология / KafkaSpout выдает кортежи без сбоев и замедляется через некоторое время

#apache-kafka #apache-storm

#apache-kafka #apache-storm

Вопрос:

Я использую топологию Storm (с Storm 0.10.0) с KafkaSpout по умолчанию для извлечения данных JSON, поступающих из темы Kafka, и их обработки.

Иногда топология достигает максимума в 500 тыс. сообщений в секунду без каких-либо проблем, но обычно остается на уровне ~ 10 тыс. сообщений в секунду.

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

Я уже дважды проверил, что все кортежи, которые достигают болтов, получают acked, и в журналах нет никаких ошибок.

Есть идеи, почему это происходит? Любая дополнительная информация, которую я могу предоставить, которая поможет отладить эту проблему?

Комментарии:

1. Вы нашли решение этой проблемы?

2. Вы нашли решение этой проблемы?

3. Не могу сказать, что я это сделал. Я использовал более новые версии KafkaSpout, которые не используют Zookeeper. Моим решением было вернуться к Zookeeper, и все работало нормально. Надеюсь, в более новых версиях проблемы не будет, но я не тестировал.

Ответ №1:

Обновите свое приложение Storm до последней версии, в Kafka / Storm добавлено много функций.

  1. Настройте оптимальные потоки / исполнителей для spout amp; bolts.
  2. Проверьте задержку болтов / носиков, если больше 1 секунды, есть какое-то горлышко бутылки (код профиля носика / болта).
  3. Тема Kafka может содержать более 100 миллионов сообщений (сокращение периода хранения).
  4. Проверьте рабочую память Storm (оптимально от 2 ГБ до 4 ГБ).
  5. Реализуйте свойство topology.max.spout.pending с начальным значением 1000 и соответствующим увеличением.