我有一个网站,我目前在欧洲的一台服务器上托管。为了改善非欧洲用户的延迟,我想在美国和亚洲添加本地服务器。
保持静态文件同步没问题。我们每天只添加一次新内容,因此一个简单的rsync cron作业可以很好地保持文件更新。
我完全坚持的是如何在数据库端处理这个问题?我更喜欢一个包含所有用户信息的主数据库,因此如果本地服务器下线,我们总是在主服务器中拥有用户数据(无论备份如何)。
到目前为止,我们考虑了两个选项:
支持地理位置复制的数据库
支持开箱即用的地理位置复制的数据库。应该非常容易设置,并且DB写入的延迟应该非常低(即,无需等待主服务器上的“写入成功”消息)。
使用主数据库和本地数据库的编程方法
用户同时从一个区域访问,因此我们可以做一些连接到主数据库和本地数据库的东西。首次登录时,所有用户信息都将从主数据库中提取并缓存在本地数据库中。用户从此开始生成的所有数据都可以存储在本地数据库中,并在后台同步回主数据库。可行,但似乎过于复杂,难以修复,如果有什么东西不同步?
关于数据库的更多背景信息
我们的问题
我会非常感谢任何见解,或者链接到涵盖此类内容的文章。我确信有更多的小规模网站遇到了这个问题。