Elasticsearch - Обновление с 2.x до 7.x - Двойная запись с использованием TransportClient и Jest - PullRequest
1 голос
/ 11 марта 2020

Мы находимся в процессе перехода от эластичного поиска 2.x к 7.x, подход заключается в двойной записи в оба кластера. Позже восстановите снимок с 2.x до 7.x за несколько прыжков с 2.x до 5.x, затем с 5.x до 6.x и, наконец, с 6.x до 7.x.

Теперь проблема заключается в разрешении двойной записи в старые и новые кластеры. Мы используем TransportClient (tcp-соединение) и Jest (http-соединение) для индексирования документов. Есть ли клиент, который может это обработать? Насколько я знаю, Jest не поддерживает 7.x, какие у нас есть варианты?

РЕДАКТИРОВАТЬ

Мы используем Kafka connect для доставки таких же обновлений в 7.xasticsearch. Этот вопрос все еще открыт для людей, которые ищут решения не-kafka.

1 Ответ

1 голос
/ 19 марта 2020

Вы правы, JEST не поддерживает 7.X, а официальные клиенты Elasticsearch недоступны для 2.X :), и до сих пор не существует клиента, который может писать в обе версии, даже клиенты Elasticsearch выпускаются с его версии сервера и не совместимы при изменении основной версии.

Кроме того, поскольку вы используете Java, я настоятельно рекомендую использовать высокоуровневый клиент . перевозки клиент. Как упомянуто в официальном блоге ES , вскоре транспортные клиенты будут устаревшими в пользу клиентов высокого уровня. текст из того же блога:

Клиент высокого уровня в конечном итоге заменит клиента транспорта, поэтому мы приглашаем всех наших пользователей Java попробовать его и перенести на него, если это возможно. Текущий выпуск поддерживает следующие API Elasticsearch:

Решение:

Вам необходимо использовать плагин maven shade для перемещения класса, существующего в любом из ваших jest или клиент Elasticsearch , поскольку у них есть конфликтующие классы, и таким образом вы можете использовать оба клиента, а используя их, вы можете индексировать и запрашивать их серверы Elasticsearch.

Подробнее о оттенке плагины можно найти здесь и здесь .

...