2016-08-04 4 views
6

Я использую elasticsearch в моем проекте mvc spring spring-data-elasticsearch и синхронизируюсь с базой данных (MySQL).Лучший способ синхронизировать Elasticsearch с Mysql

Я индексирую документ из своего приложения, если какой-либо новый объект будет добавляться в таблицы db одновременно, с уровня сервиса, я также хочу проиндексировать этот документ в elasticsearch.

Обе таблицы db и индекс elasticsearch имеют одинаковые данные, а также для удаления и обновления операции. Я использую ту же концепцию, выполняя операцию изменения на elasticsearch и db table, она работает нормально.

Теперь я хочу знать, что будет disadvantages этого подхода.

Или есть лучший способ сделать наш индекс elasticsearch актуальным с db. Я использовал logstash, но как насчет удаленных объектов

+1

Этот ответ может помочь: http://stackoverflow.com/ вопросы/34477095/elasticsearch-репликация из-других-системы-данных/34477639 # 34477639 – Val

ответ

1

Недостатком синхронной индексации является отсутствие повторения, если при создании индексных данных возникает ошибка.

На вашем месте я создам cronjob/партии (для запуска зависит, насколько данные обновляются и насколько важным является обновление индекса) и эта работа будет иметь статус выполнения с бревнами

вы будете иметь четкое представление о вашем индексе и не хватают данных

и для индексов вы можете режим ПОЛНОГО индекса & режим UPDATE индексов (вы должны добавить дату обновления на ваших столах)

стратегии индексирования у вас есть две фазы и вы можете выбрать TWO_PHASES: вам нужно мастер & slave ==> при выполнении индексирования на главном подчиненном устройстве будет отвечать на запросы, а когда индексирование завершено, вы синхронизируете DIRECT_MODE: индекс падения & создать новый

 Смежные вопросы

  • Нет связанных вопросов^_^