我们有一个在两个不同国家(德国和美国)运行的网络应用程序。 对我们来说,将客户的数据保存在他们所属的国家/地区非常重要,因此德国客户应该留在德国,反之亦然。
我想迁移到云解决方案并在美国和德国拥有 2 个数据库实例(出于速度目的)。 Web 应用程序正在生成自动递增的 ID,我希望链接可以双向工作。 因此,例如两个链接都应该有效:
这两个数据库实例将设置为主-主复制,但问题是我不希望在美国数据库中复制在德国生成的数据。 显然,这会导致自动增量 ID 出现问题,我不知道如何解决这个问题。
如果有人可以帮助我或指导我如何处理这种情况,我将不胜感激。
最佳答案
我不明白你的要求。可以请详细点吗?
根据您在此处获得的信息,我建议这样做:
如果您想优化云基础架构中的速度,那么您需要在前端进行缓存,使用一些 CDN 服务,例如亚马逊 CloudFront、谷歌……在这种情况下,大西洋两岸的数据都可用,但它只是临时缓存,数据没有托管在数据库中。你清空了前端缓存,你的数据就不存在了!所以,你根本不需要数据库复制!将您的数据保存在它们所属的位置,并在您的网络应用程序/网络服务实现之上使用 CDN 实现/前端缓存!
如果您不想使用这些服务但想托管自己的服务,那么您可以自己实现一个简单的 CDN/前端服务器。这很简单,您需要为您的页面查询和缓存数据,然后将来自客户端的一些数据存储在页面中。例如。 HTTP header 区域数据、x-forwarded-for、区域数据、一些客户端 cookie ...您可以为此实现一个简单的应用程序,然后即时引用正确的页面...
关于基于地理位置的 MySQL 复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32818663/