Ответ 1
Я использовал согласованный протокол Raft для репликации своей базы данных SQLite. Вы можете найти систему здесь:
Я разрабатываю приложение, которое работает распределенным, и у меня есть база данных SQLite, которая должна быть распределена между распределенными серверами. Если я нахожусь в serverA и меняю строку sqlite, это изменение должно быть на других серверах мгновенно, но если сервер был отключен, а затем он появился в сети, он должен обновить всю информацию, равную другим серверам.
Я пытаюсь разработать службу HA с небольшими базами данных SQLite.
Я думаю о чем-то вроде MongoDB или ReThinkDB, из-за того, что репликация работает нормально, и у меня есть данные независимо от того, был ли у меня онлайн-сервер.
Есть ли библиотека или другая методология SQL для обмена данными между серверами?
Спасибо заранее.
Я использовал согласованный протокол Raft для репликации своей базы данных SQLite. Вы можете найти систему здесь:
Вы можете использовать litereplica:
Он поддерживает репликацию master-slave для баз данных SQLite3 с использованием одного ведущего (записываемый node) и одного или нескольких реплик (узлы только для чтения).
Если устройство перешло в автономный режим, а затем оно было подключено к сети, вторичные/ведомые dbs обновляются с помощью первичного/основного инкрементально.
Или litesync:
Он реализует репликацию с несколькими мастерами, поэтому мы можем писать в db в любом node, даже если устройство отключено.
В обоих случаях мы открываем базу данных с использованием измененного URI, например:
"file:/path/to/app.db?replica=master&bind=tcp://0.0.0.0:4444"
Вы можете синхронизировать базы данных SQLite, вставив SymmetricDS в ваше приложение. Он поддерживает периодически подключаемых клиентов, поэтому он будет фиксировать изменения и синхронизировать их, когда сервер подключается к сети. Он поддерживает несколько различных платформ баз данных и может использоваться как библиотека или как отдельная служба.
Вы также можете использовать CopyCat, которые поддерживают SQLite, а также несколько других типов баз данных.