我真的很想了解一个网站的网络系统架构是什么样子的
随时为数万用户提供在线服务
提供对多种语言的支持,以便来自多个国家/地区的人们可以使用它
基本上,我想知道必须考虑哪些因素。分布式服务器(其他国家的服务器)?添加故障转移?整个事情如何运作?
我注意到 google 有 google.com、goolge.run、google.cn 等。这背后的原理是什么?每个网址是否提供不同或相同的内容?
任何指针或信息都非常感谢。
问候。
我真的很想了解一个网站的网络系统架构是什么样子的
随时为数万用户提供在线服务
提供对多种语言的支持,以便来自多个国家/地区的人们可以使用它
基本上,我想知道必须考虑哪些因素。分布式服务器(其他国家的服务器)?添加故障转移?整个事情如何运作?
我注意到 google 有 google.com、goolge.run、google.cn 等。这背后的原理是什么?每个网址是否提供不同或相同的内容?
任何指针或信息都非常感谢。
问候。
与架构相关的任务没有灵丹妙药。但通常对于一个大型且长期存在的项目,您应该考虑以下任务:
定义您应该开始的目标容量。您无法在一次迭代中构建高可用性系统。最初,您可能可以从全球最大用户会话数 = 1000 开始,但您现在应该准备好进行扩展。并且不要害怕支付技术债务。
更加关注底层技术细节。您无法想象这一点对于大型项目的重要性。对于大量数据,一些通用解决方案可以替换为针对您自己的目的优化的您自己的解决方案。这与任何情况有关:数据库方案、处理对服务器的请求或排序算法。例如,拥有更具体的排序算法,收益非常小,但数据量巨大,可以节省数十亿美元。在这个级别,您可能必须在请求处理序列级别调整您的 Web 服务器,以便您应该了解底层细节及其源代码。开源项目在这方面做得很好,因为您可以随时改进实现或修复错误。
最后,您应该了解一些广为人知的缩放方法。平衡和缓存是微不足道的,它可能是分片、延迟数据处理,甚至是数据的完全重复(考虑一下当 Mark Tsukenberg 发布到 Facebook 时,由于他拥有广泛的订阅者社区,数据库中发布的记录不止一条)