我正在扩展 webapp 并提供一些数据库冗余以防止故障并在需要更新时保持服务器正常运行。该应用程序仍在开发中,因此我选择了一个简单的多主机冗余和两个独立的数据库服务器来尝试实现这一目标。每个服务器都将拥有 Django 代码并托管自己的数据库,并且数据库应尽可能紧密地镜像(在几秒钟内更新)。
我试图弄清楚如何使用 Django 和 MySQL 在数据库之间设置多主(主-主)复制。有很多关于仅使用 MySQL 设置它的文档(使用各种配置),但我找不到任何可以从 Django 方面进行这项工作的文档。
据我了解,我需要通过在 Django 设置中添加两个数据库条目(每个 master 一个)来解决这个问题,然后编写一个数据库路由器,该路由器将指定从哪个数据库读取和从哪个数据库写入。在这种情况下,两个数据库都应该接受读取和写入,并且写入/更新应该被镜像到另一个数据库。路由器中的逻辑可以简单地使用循环技术来决定使用哪个数据库。从那里开始,进一步的配置来设置实际的复制应该通过 MySQL 配置来完成。
这种方法听起来是否正确,有没有人有过让它发挥作用的经验?