gpt4 book ai didi

scalability - Facebook 等大型网站如何分配负载?

转载 作者:行者123 更新时间:2023-12-04 20:56:51 26 4
gpt4 key购买 nike

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

2年前关闭。




Improve this question




这可能更适合服务器故障,但对我来说似乎更像是一个编程挑战。我可能是错的。

我在想 Facebook 如何做它所做的。它拥有超过 5 亿活跃用户。他们如何设法为所有这些用户提供服务?是否有一个庞大的数据库保存每个用户的记录,以便每当有人登录时,都会针对该中央机器检查身份验证?我对这个话题一无所知,但我可以看到这样的解决方案很简单,不可扩展。总有一天,中央服务器无法处理所有事情。

相反,假设中央数据库被拆分为 100 数据库,以便将负载平均分配给所有数据库。这肯定是 Facebook 所做的,但他们如何知道将哪些用户记录存储在哪台机器上?是不是每台机器都有记录,登录时随机使用一台用户机器进行认证?这意味着每次有人注册或更改他们的密码时,更改必须在所有 中传播。 100 服务器。

我想到了另一种解决方案。也许他们有某种方法可以将用户的电子邮件地址散列到特定的用户数据库。那么网络服务器所需要知道的就是散列算法。但是我认为这个解决方案带来了它自己的问题。如果要添加更多用户数据库机器怎么办?是否更改哈希算法以考虑 101 用户数据库而不是 100 ?您是否会开始移动用户记录,以便 101 个用户数据库具有相同数量的用户记录?不,这似乎也很荒谬。

无论如何,如您所见,我对如何解决这些问题不太了解。有没有人推荐阅读有关此主题的内容?

最佳答案

一个好的起点可能是查看 Cassandra ( lecture notes ),支持 FB 收件箱搜索的分布式数据库。

这里有更多关于 FB's nuts and bolts .
您可能还会在 FB developer news 中找到一些 gem 。 .

关于scalability - Facebook 等大型网站如何分配负载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4503236/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com