Я хочу настроить postgres и elasticsearch. Но прежде чем бросать данные в elasticsearch, я хочу предотвратить потерю данных при выходе из сети или сервера. Прочитав эту тему: https://gocardless.com/blog/syncing-postgres-to-elasticsearch-lessons-learned/. Я придумал 3 решения.Postgres with elasticsearch (держать в синхронизации) - nodeJS
Создание таблицы базы данных еи:
store
, и добавлять новые/обновленные данные.- Во время запросов: вставьте данные в
store
. - Выберите новые данные:
SELECT data FROM store WHERE modified > (:last modified time from elasticsearch)
- Отправить "новый" данные к elasticsearch
- Во время запросов: вставьте данные в
Используйте Redis для
pub/sub
запросов и сделать elasticsearch слушать/подписаться на предстоящие данные. Если поиск elasticsearch прерывается, данные будут находиться в очередиПопадание любых ошибок во время транзакции в поиск elastics и сохранение данных в безопасном месте (таблица:
store
). Затем выполните задание cron, которое возвращает данные.
Конечно, проще всего было бы вставить данные в elasticsearch сразу. Но при этом предотвращается хранение данных в безопасном месте во время сбоев. 1
слишком медленный, на мой взгляд, в отличие от 2
. А для 3
требуется код обработки ошибок.
На данный момент 2
- мой вариант.
Есть ли лучшие способы сделать это? Я хотел бы услышать ваши мнения и новых предложений
: D
Просто интересны, как будет обрабатывать удаления для случая 1. Я просто изучаю варианты, чтобы сделать именно то, что вы делать ... – FacePalm
Кроме того, проверьте это ... https://qafoo.com/blog/086_how_to_synchronize_a_database_with_elastic_search.html – FacePalm
@FacePalm см. anwser – Antartica