我有一个使用 MySQL 存储数据的网络应用程序。Web 应用程序是内部的(不能通过 Internet 获得)。
我现在必须在 3 个(可能更多)位置(分支机构)部署此应用程序。他们需要能够同步数据(在一个位置创建的条目在其他分支位置可用)。
要求
- Web 应用程序的本地实例 + mysql 数据库
- 每个位置在本地读写/在自己的网络上
- 数据库每天同步一次(可能通过脚本通过 SSH),以便每个位置都有相同的数据。
我能够解决这个问题的唯一方法(到目前为止)是创建 UUID(唯一标识符)并使用源位(用于原始位置)和同步位(new=0,synced=1)对每一行进行编码然后编写一个脚本,在其中我每晚通过 SSH 连接到每个位置,并将 = my source 和 synced=0 的行添加到每个位置...我意识到这很粗鲁,而且不是很优雅/可靠,但我不知道还能做什么。
客户担心如果互联网连接失败,他希望应用程序能够在本地运行,但仍然在其他分支之间保持同步(通过夜间脚本或其他方式)。正如我所说,已经有 3 个地点,今年晚些时候可能还会有更多。
任何有关架构的建议将不胜感激。
PS。由于安全问题,我没有将数据库连接到互联网。但我愿意接受所有建议。
谢谢。