我对跨多个服务器分片我的网站用户数据感兴趣。
例如,用户将从同一个地方登录。但是登录脚本需要弄清楚用户数据所在的服务器。因此,登录脚本将查询主注册表以获取该用户名,并可能返回它在服务器 B 上。然后登录脚本将连接到服务器 B 并验证用户名/密码。那有意义吗?拥有像主注册表这样的东西来解决数据所在的位置是否正常?
另外-我已经搜索过,但我没有找到关于分片的教程/信息/策略的运气。如果您知道有关该主题的任何在线资源,如果您愿意分享,我将不胜感激,以便我进行自我教育。谢谢!
我对跨多个服务器分片我的网站用户数据感兴趣。
例如,用户将从同一个地方登录。但是登录脚本需要弄清楚用户数据所在的服务器。因此,登录脚本将查询主注册表以获取该用户名,并可能返回它在服务器 B 上。然后登录脚本将连接到服务器 B 并验证用户名/密码。那有意义吗?拥有像主注册表这样的东西来解决数据所在的位置是否正常?
另外-我已经搜索过,但我没有找到关于分片的教程/信息/策略的运气。如果您知道有关该主题的任何在线资源,如果您愿意分享,我将不胜感激,以便我进行自我教育。谢谢!
您应该查看内容丰富的站点http://highscalability.com。值得一读的帖子:
一般来说,您采用的是正确的方法,但如果您需要对多个集群进行查询,这可能会很快变得令人讨厌——例如“你朋友最近的帖子”类型的查询。
您可能要考虑的一个选项:使用简单的哈希。例如,取用户名的 MD5 哈希,然后将其最后 8 个字节视为一个长字节。拿那个长模式(服务器数量)并使其成为放置数据的服务器。这样,除了有序的服务器列表之外,您不需要任何中央注册表/配置。
缺点是更改服务器数量涉及将所有数据移动到新的“正确”位置......
(还有一个问题是,如果一台机器出现故障,这些用户就会被塞满——你需要考虑某种冗余。)