天猫网站内容架构分析(大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?)
优采云 发布时间: 2021-11-06 18:07天猫网站内容架构分析(大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?)
建筑师课程--第4周--作业
典型的大型互联网应用系统采用了哪些技术方案和方法,需要解决的主要问题有哪些?请给出描述。
这张图描绘了2012年维基百科的网站架构,从左到右,我们可以将整个架构分为三个部分:前端、服务器端和后端:
前端
大家可以注意图中的红线。对于维基百科,80%以上的用户请求可以通过前端服务返回,并且请求永远不会到达应用服务器。
对于用户发送的请求,首先到达GeoDNS,GeoDNS是一个可以根据用户的IP解析用户地理位置的服务器,然后将用户的请求分发到最近的数据中心。那就是 CDN(内容分发网络)加速。CDN的本质还是一个缓存,部署在运营商机房,而这些运营商是终端用户的网络服务商,所以当CDN中有浏览器请求的资源时,直接从CDN 到浏览器。的。
对于无法响应的请求,会通过LVS(Linux Virtual Server)负载均衡分发到Squid集群中的Squid反向代理服务器。热点条目缓存在这里,大量的请求可以直接返回响应。对于图片,它们也是从专用图片服务器读取的。如果没有对应的图片,图片服务器向服务器发送生成请求。对于未被缓存命中的条目,它们将通过 LVS 发送到 Apache 应用服务器集群。如果条目信息被更新,应用服务器使用失效通知服务通知squid缓存无效,并重新访问应用服务器更新条目。
服务器
该服务主要以蓝色模块MediaWiki为中心进行开发。MediaWiki 由 70% 的 PHP 代码和 30% 的 JS 代码组成。它是一个免费的开源引擎。尝试使用免费开源软件来部署网站服务也是一种省钱的方式。
后端
使用分布式缓存 Memcached 来节省存储开销和读取速度。使用读写分离来写入主库和从复制的从库读取数据。
以下是2020年最新的维基百科架构,经过一些技术更替,依然沿用了LAMP架构的部署。
总结
互联网架构的演进从开始到现在,每个模块都得到了提炼和丰富,使用的技术也得到了优化,但原有的结构依然存在。每一次技术变革,每一个解决方案的出现,都是为了将产品推向高性能、高可用、易扩展和可扩展的目标。
本文参考:《大网站技术架构-核心原理与案例研究》-李志辉
如果你对维基百科的架构设计感兴趣,可以参考