许多服务器访问的单个服务器上的数据库。开发人员如何解决这个问题?

时间:2012-03-08 04:16:27

标签: mysql cloud vps

我在全球范围内拥有的VPS和云端服务器很少,我正在建立一个可供所有服务器访问的数据库。

在设置我的数据库时,我会购买另一台VPS或云服务器并将其托管在最繁忙的服务器附近。

所有服务器都拥有并提供相同的内容。因此,如果我的数据库服务器位于San Fransisco并且我尝试从我的罗马尼亚服务器访问它,则会出现性能问题。

开发商如何应对这种情况? 在所有服务器中实现相当大的性能的最佳方法是什么?在数据库就绪服务器上托管数据库是否更好? (Amazon RDS,Azure SQL)或托管我自己的数据库服务器?

无论如何,定价是一个问题,所以越便宜越好。

更新:

基本上我有8台服务器,即将构建1台数据库服务器。每个用户的数据库内容最大约为30KB,但用户最多可达500,000。因此,连接不适用于大量数据,并且每次用户访问站点时都不会与数据库建立连接。它只是我不确定它与服务器的速度有多慢。我的问题主要是,人们通常做什么。我确实有CDN,这不是我想要的。我使用Akamai的CDN但是对于数据库来说,我所有服务器的费用都是6个月。

2 个答案:

答案 0 :(得分:0)

您是否正在尝试构建自己的CDN以更好地为两个国家/地区的主要客户群提供服务?

假设您有两台HTTP服务器,一台位于San Fransisco,一台位于布加勒斯特。如果两个服务器都访问同一个数据库服务器,则HTTP服务器和数据库服务器之间仍会存在延迟问题。

一种方法是拥有两个HTTP服务器和两个数据库服务器。一个是主服务器,一个是从服务器。从服务器是只读的,写查询将被定向到主服务器。

另一种方法是使用memcached或其他缓存方法缓存HTTP服务器上的内容。无论哪种方式,您都希望最大限度地减少必须远程向服务器进行远程数据库查询。

根据您的负载,最简单的方法可能是在第三个位置托管,这对您所服务的两个位置都有良好的延迟。例如,如果你想服务亚洲和北美,那么东京或香港是不错的选择。不幸的是,我不知道北美和欧洲之间的适合地点。它会为你节省金钱和头痛。

对于静态内容,Amazon CloudFront是一个很好的解决方案。

答案 1 :(得分:0)

使用mySQL主/从功能。当主站更新时,从站会相应地更改。我不确定你要使用或需要多少个sql server。如果正确设置主/从关系,那么每个服务器将具有相同的数据,理想情况下性能应该是好的。我不是主/从关系的专业人士,但我确信有人可以在这里提供帮助。