我需要一些建议。让我告诉你这个场景。假设我正在构建一个本地搜索引擎,以满足全局用户的需求。将所有用户(搜索引擎中列出的企业)相关数据存储到单个 SQL Server 上是不明智的,因为它可能会增长到巨大的规模。所以我在考虑将用户登录(身份验证)相关数据存储到中央服务器上,然后将其他详细信息存储到不同的服务器上,每个服务器对应一个国家或地区。例如:我将为美国、印度、英国等各有一个 SQL 服务器。
但这里的问题是,如果用户从印度注册,他的登录信息(如用户名、密码等)存储在中央服务器中,其他详细信息存储在 SQL Server 上,供印度用户使用。但是,如果用户后来将他的地址详细信息修改到其他国家/地区,则很难将他的所有数据移动到其他服务器(他的新地区/国家/地区)。
我基本上想做的是拥有多个 SQL Server,这样我就可以将数据分发到不同的服务器上,但从开发人员的角度来看,这通常是如何完成的?
最佳答案
您可能需要考虑使用 Couchbase。它具有跨数据中心复制。
对于您的场景,您的应用程序可能需要一些逻辑。如下所示的简单方法可能有效。
1) 印度用户在印度服务器注册
2) xdcr 到中央服务器
3) 印度用户点击印度服务器更改配置文件
4) 印度服务器修改数据并xdcr回中央
或
1) 印度用户在印度服务器注册
2) xdcr 到中央服务器
3) 印度用户点击日本服务器更改配置文件
4) 日本服务器找不到印度用户数据
5) 日本服务器查询中央服务器印度用户数据
6) 日本服务器根据印度用户更新继续更新查询数据
7) 日本服务器本地存储数据
8) xdcr 到中央服务器
因此,其他区域服务器是中央服务器的子集。无需将相同的数据复制到所有服务器。如果区域服务器没有一些数据,则向中心服务器查询以进行验证。
想法是将不同类型的数据分离到不同的存储桶中,这样您就可以轻松地将哪些数据复制到哪里。当然,Couchbase 是特定的。
附言。我与 Couchbase 无关。
关于sql-server - SQL Server 负载分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22446699/