Массовая вставка данных вasticsearch через logstash с scala - PullRequest
1 голос
/ 08 мая 2019

Мне нужно вставить большие объемные данные в Regularary эластичный поиск через Scala-код. При поиске в Google я обнаружил, что logstash используется для большой скорости вставки, но logstash не имеет библиотек Java или Api для вызова, поэтому я попытался подключиться к нему через http-клиент. Я не знаю, что это хороший подход для отправки больших данных по протоколу http или лучше использовать другие подходы, например, с использованием брокера, очередей, redis и т. Д.

Я знаю, что последние версии logstash (6.X, 7.x) позволяют использовать постоянную очередь, так что это может быть другим решением использовать очередь logstash, но снова через протокол http или tcp.

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

Буду признателен за любые идеи.

Обновление

Кажется, использование http надежно и имеет механизм подтверждения, основанный на здесь , но если использовать этот подход, то какие библиотеки клиента http в scala являются более подходящими, так как мне нужно отправлять объемные данные в последовательности формата значения ключа и обработать ответ неблокирующим способом?

1 Ответ

1 голос
/ 09 мая 2019

Это может показаться излишним, но введение уровня буферизации между scala-кодом и logstash может оказаться полезным, поскольку вы можете избавиться от тяжелых HTTP-вызовов и полагаться на упрощенный транспорт протокола.

Рассмотрите возможность добавления Kafka между вашим scala-кодом иlogstash для очередей сообщений.Logstash может надежно обрабатывать сообщения от Kafka с использованием транспорта TCP и массовой вставки в ElasticSearch.С другой стороны, вы можете помещать сообщения в Kafka из вашего scala-кода в сборке (пакетах), чтобы заставить весь конвейер работать эффективно.

С учетом сказанного, если у вас нет тома, скажем10000 мсек / сек, затем вы также можете поиграть с плагином ввода HTTP logstash, настроив потоки и используя несколько процессов logstash.Это позволяет уменьшить сложность добавления еще одной движущейся части (Кафки) в вашу архитектуру.

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