Week4
本周课程内容主要是对于互联网公司、互联网项目遇到的问题,和逐渐解决的方案和过程做了梳理。
本周收获:优秀的网站架构,一定是简单的,一眼清晰明了。如果架构过于复杂,要么是架构有问题,要么是业务有问题。任何网站架构问题,都是需要找到一两个核心问题,使用对应的手段解决。28原则。找到问题,并使用技术手段解决。技术是为业务服务,单纯炫技,是不负责,也是不合理的。在技术解决不了的问题面前,要对业务做改动(如12306)。
并对几个典型的互联网项目的架构做了讲解。
典型案例有维基百科、淘宝、宅米网。
维基百科:
作为一个只有数十人维护的全球性的网站,他需要解决的问题是,全球各地查询,如何能尽快返回结果。作为维基百科,写的需求是极低的(相对读来说)。那么维基百科在全球有三个大的数据中心。使用了大量的CDN做缓存。缓存没有命中的情况下,就近路由到最近的机房获取数据。这样,大规模缓存的使用,解决了用户读的问题。也就解决了网站的核心问题。
淘宝:
淘宝在发展过程中经历了数次架构演化。最初淘宝只有几个集群,数据库只有主从读写分离。后来,继续演化,发现架构瓶颈在数据库。所有引入了oracle数据库。搜索流量导入搜索服务器集群。后又引入分布式缓存。
宅米网:
宅米以移动端app为主,中间负载均衡到后端服务器集群。按业务划分,卖家集群、买家集群、供应链集群、运营集群。后来,随着业务发展,业务架构目标定在了日订单50万。后端服务大规模上云,文件服务使用阿里云,使用大量缓存服务。前端使用CDN缓存分担服务端压力。
互联网系统面对的问题
高并发、大流量。目标:高可用
应对方案:垂直伸缩、水平伸缩。
解决方案
1.单体应用架构
2.应用数据分离
3.使用缓存改善系统性能
4.使用应用服务器集群改善系统并发能力
5.数据库读写分离
6.使用反向代理和CDN加速网站响应
7.使用分布式文件系统和分布式数据库
8.使用NoSQL和搜索引擎
9.业务拆分
10.微服务及中台化
评论