我正在开发一款分布式应用程序,并且我有一个SQLite数据库必须在分布式服务器之间共享。
如果我在serverA中更改了sqlite行,这个更改必须立即在其他服务器上更新,但是如果一个服务器离线然后重新上线,它必须更新所有与其他服务器相同的信息。
我正试图通过小型SQLite数据库开发高可用性服务。
我考虑使用像MongoDB或ReThinkDB这样的数据库,因为复制功能很好且我已经获得了独立于在线服务器的数据。
是否有一种库或其他SQL方法可以在服务器之间共享数据?
我正在开发一款分布式应用程序,并且我有一个SQLite数据库必须在分布式服务器之间共享。
如果我在serverA中更改了sqlite行,这个更改必须立即在其他服务器上更新,但是如果一个服务器离线然后重新上线,它必须更新所有与其他服务器相同的信息。
我正试图通过小型SQLite数据库开发高可用性服务。
我考虑使用像MongoDB或ReThinkDB这样的数据库,因为复制功能很好且我已经获得了独立于在线服务器的数据。
是否有一种库或其他SQL方法可以在服务器之间共享数据?
我使用Raft一致性协议来复制我的SQLite数据库。你可以在这里找到这个系统:
“file:/path/to/app.db?replica=master&bind=tcp://0.0.0.0:4444”- AergoLite: 基于区块链,具有最高级别的安全性。存储由低资源使用的分布式共识保护的不可变关系数据。重要声明:我是这些解决方案的作者。
您可以通过在应用程序中嵌入SymmetricDS来同步SQLite数据库。它支持偶尔连接的客户端,因此当服务器上线时会捕获更改并同步它们。它支持几种不同的数据库平台,并可用作库或独立服务。
Marmot 看起来不错:
https://github.com/maxpert/marmot
来自他们的文档:
Marmot是一个分布式SQLite复制器,具有无领导和最终一致性。它允许您通过在容错的NATS Jetstream之上构建来构建节点之间的强大复制。这意味着,如果您正在运行基于SQLite的读取重型网站,则可以通过添加更多的SQLite复制节点轻松扩展它。SQLite可能是存在于几乎所有地方的最普遍的数据库,Marmot旨在通过在其之上构建复制层使其在服务器端应用程序中变得更加普及。