国际用户访问美国服务器的 MySQL 数据库问题。这通常是如何处理的?
Posted
技术标签:
【中文标题】国际用户访问美国服务器的 MySQL 数据库问题。这通常是如何处理的?【英文标题】:MySQL database issue with international users hitting a US server. How is this normally handled? 【发布时间】:2011-04-27 19:25:49 【问题描述】:我有一个网站,它访问了亚马逊云中的 mysql 数据库。该站点位于不同的服务器上,哪个服务器为站点提供服务取决于用户的位置。当数据库从美国被击中时一切都很好,但是当亚洲或欧洲的用户打开站点时,它只是挂起,因为对数据库的调用时间太长了。
如您所知,我对“服务器的东西”一点也不熟悉(我一直与为我做这种事情的人一起工作)所以我的问题很简单......这通常是怎么回事完毕?我无法想象通常有 3 个不同的 MySQL DB 实例相互同步。处理这类事情的典型架构是什么?
谢谢。对于这个有点基本的问题,我们深表歉意,但在教育网络专家如何在幕后完成工作时,我们将不胜感激。
【问题讨论】:
看起来更像是属于ServerFault而不是SO。 【参考方案1】:实际上,让多个 MySQL 实例同步(查找 replication
)根本不是一个糟糕的解决方案。但它确实有缺点,这就是为什么较新的网站会寻找不同的解决方案。例如,他们尝试使用 MongoDB 或 CouchDB 而不是 MySQL,因为它更易于扩展和复制。缓存也有很大帮助。使用分布式缓存(memcache 池、Varnish 缓存等)并确保您的应用程序很少需要直接访问数据库。
最简单的事情是:为什么一开始就将用户分布在地理位置不同的服务器上?你不能也从美国的服务器上为国际用户提供服务吗?
【讨论】:
从我读过的复制来看,这不是从属和主类型设置吗?无论层次结构如何,我都需要三个不同的数据库来相互同步。此外,当 DB #1 尝试与之同步时,是否会有新条目进入 DB #2 的风险?然后在 DB #2 中有一个新 ID,它与尝试从 DB #1 插入的行的编号相同。 你真的应该查一下 MySQL 复制,这不是我的专长。我知道这是您问题的有效解决方案,但这并不是一个特别容易的解决方案。因此,最近人们对提供更容易分发的其他类型的数据库产生了兴趣。以上是关于国际用户访问美国服务器的 MySQL 数据库问题。这通常是如何处理的?的主要内容,如果未能解决你的问题,请参考以下文章
TikTok 美国用户数据或将由甲骨文存储,字节跳动无权访问