4

我对跨多个服务器分片我的网站用户数据感兴趣。

例如,用户将从同一个地方登录。但是登录脚本需要弄清楚用户数据所在的服务器。因此,登录脚本将查询主注册表以获取该用户名,并可能返回它在服务器 B 上。然后登录脚本将连接到服务器 B 并验证用户名/密码。那有意义吗?拥有像主注册表这样的东西来解决数据所在的位置是否正常?

另外-我已经搜索过,但我没有找到关于分片的教程/信息/策略的运气。如果您知道有关该主题的任何在线资源,如果您愿意分享,我将不胜感激,以便我进行自我教育。谢谢!

4

2 回答 2

8

您应该查看内容丰富的站点http://highscalability.com。值得一读的帖子:

一般来说,您采用的是正确的方法,但如果您需要对多个集群进行查询,这可能会很快变得令人讨厌——例如“你朋友最近的帖子”类型的查询。

于 2009-06-28T09:09:27.173 回答
1

您可能要考虑的一个选项:使用简单的哈希。例如,取用户名的 MD5 哈希,然后将其最后 8 个字节视为一个长字节。拿那个长模式(服务器数量)并使其成为放置数据的服务器。这样,除了有序的服务器列表之外,您不需要任何中央注册表/配置。

缺点是更改服务器数量涉及将所有数据移动到新的“正确”位置......

(还有一个问题是,如果一台机器出现故障,这些用户就会被塞满——你需要考虑某种冗余。)

于 2009-06-28T07:48:18.553 回答