SQL Server负载分配

时间:2014-03-17 03:59:40

标签: sql-server load-balancing

我需要一些建议。我告诉你这个场景。假设我正在建立一个迎合全球用户的本地搜索引擎。将所有用户(搜索引擎中列出的业务)相关数据存储到单个SQL Server上是不明智的,因为它可能会变得很大。所以我考虑将用户登录(身份验证)相关数据存储到中央服务器,然后将其他详细信息存储到不同的服务器,每个服务器用于一个国家或地区。例如:我将有一个SQL服务器,例如美国,印度,英国等。

但问题在于,如果用户从印度注册,他的登录信息(如用户名,密码等)将存储在中央服务器中,其他详细信息将存储在SQL Server中,供印度用户使用。但是,如果用户稍后将其地址详细信息修改为其他国家/地区,则很难将其所有数据移至其他服务器(他的新地区/国家/地区)。

我基本上要做的是拥有多个SQL Server,以便我可以将数据分发到不同的服务器,但从开发人员的角度来看,它是如何正常完成的?

1 个答案:

答案 0 :(得分:0)

您可能需要考虑使用Couchbase。它具有跨数据中心复制功能。

对于您的场景,您的应用程序可能需要一些逻辑。如下所示的简单可能有效。

1)印度用户在印度服务器注册 2)xdcr到中央服务器
3)印度用户点击印度服务器改变档案
4)印度服务器修改数据和xdcr回到中央

OR

1)印度用户在印度服务器注册 2)xdcr到中央服务器
3)印度用户点击日本服务器改变档案
4)日本服务器找不到印度用户数据
5)日本服务器查询中央服务器的印度用户数据
6)日本服务器根据印度用户更新进行更新查询数据 7)日本服务器本地存储数据
8)xdcr到中央服务器

因此,其他区域服务器是中央服务器的子集。无需将相同数据复制到所有服务器。如果区域服务器没有某些数据,请回询中央服务器进行验证。

想法是将不同类型的数据分成不同的存储区,这样您就可以轻松地将要复制的数据复制到哪里。 Couchbase当然具体。

PS。我与Couchbase无关。