Потоковая аналитика с использованием Apache Kafka - PullRequest
0 голосов
/ 06 марта 2019

Мы собираем потоковые данные с устройства (Android, iOS).Поток данных: websocket -> logstash -> kafka -> spark -> cassandra.Рам имеет 16 ГБ.Наше приложение основано на платформе OTT, и во время потоковой передачи видео оно отправляет события в kafka для аналитических целей.В настоящее время память быстро переполняется при одновременном воспроизведении 4 или 5 видео.

В чем может быть проблема?Это какая-то ошибка конфигурации?Есть ли другой лучший подход для нашего требования?

1 Ответ

2 голосов
/ 06 марта 2019

Я отвечу на ваш широкий вопрос широким ответом.

Является ли Logstash / Kafka / Spark / Cassandra «правильной» архитектурой?

Нет ничего особенно плохого в этом подходе. Это зависит от того, какую обработку вы делаете, и почему вы отправляете ее Кассандре. Вы найдете множество людей, использующих этот подход, в то время как другие могут использовать другую потоковую обработку, например, Kafka Streams, а также не всегда использование хранилища данных (поскольку Apache Kafka сохраняет данные) - зависит от того, что потребляет данные впоследствии.

Может ли моя система обрабатывать более 10 000 пользовательских действий одновременно с этой архитектурой?

Да. Нет. Это зависит от слишком многих факторов, чтобы дать ответ. 10 000 пользователей, выполняющих простую операцию с небольшими объемами данных, сильно отличаются от 10 000 пользователей, требующих сложной обработки больших объемов данных.

Единственный способ получить ответ на этот вопрос и оценить свой архитектурный выбор в целом - это проанализировать поведение вашей системы по мере увеличения [имитации] числа пользователей. Появляются ли конкретные узкие места, которые указывают на необходимость увеличения аппаратного масштаба или даже на выбор другой технологии.

...