sql-server - SQL Server 负载分布

标签 sql-server load-balancing

我需要一些建议。让我告诉你这个场景。假设我正在构建一个本地搜索引擎,以满足全局用户的需求。将所有用户(搜索引擎中列出的企业)相关数据存储到单个 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/

相关文章:

sql - 将西里尔字符传递到存储过程中不起作用 Sql Server

sql-server - Node-odbc 无法连接到 mssql

Kubernetes - 发现和访问另一个集群服务,如自托管

docker - 为什么无法通过名称或 VIP 访问 Docker Swarm 中的服务?

amazon-web-services - 多个域名作为别名记录附加到同一个负载均衡器?

c# - 如何获取表的主键列(如果是复合主键)

sql - 如何在 SQL Server 中实现多语言内容的全文搜索

algorithm - 将数字均匀分配到组中的最佳策略

javascript - NodeJS 中的集群

sql-server - 在表变量上使用主键来提高查找性能