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