《大型网站技术架构核心原理与案例分析》阅读第一天
今天阅读了《大型网站技术架构核心原理与案例分析》的第一篇的第一小节。
文中谈到了大型网站系统应具有一下特点:高并发,大流量、高可用、海量数据、用户分布广泛,网络情况复杂、安全环境恶劣、需求快速变更,发布频繁、渐进式进展。其中大型网站的技术挑战主要来源于庞大的用户量,高并发的访问和海量的数据源,任何一个简单的业务,一旦数据量和用户量大了起来就会变得很棘手。我们知道,大型网站都是从小型网站发展过来的,小型网站最开始只需要一台服务器即可。随着业务的发展,用户数的增多,数据库压力变大,用户体验感变差,这时就需要对网站架构进行进一步优化。
使用缓存改善网络环境。网站访问的特点遵循二八定律:80%的业务访问集中在20%的数据上,所以我们可以把这20%的数据缓存在内存上,以增加访问速度金并且减少数据库的访问压力。使用应用服务器集群改善网络的并发处理能力:根据用户数目来增加一定的服务器,从而实现系统的可伸缩性。使用主从数据库实现对数据的读写分离。业务拆分:大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将整个网站业务分成不同的产品线,具体到技术上,再根据产品线划分,将一个网站拆分成许多不同的应用,每个应用独立部署维护。应用之间可以通过超链接建立关系,也可以通过消息队列进行数据分布,通过访问同一个数据存储系统来构成一个关联的完整系统。将业务拆分也符合架构的基本思路,将问题拆分,然后建立问题之间的关联关系,使其能构成一个整体。最后就是使用分布式服务,将共用的业务提取出来,独立部署,由复用的业务连接数据库,提供共用服务,系统只需管理用户界面,通过分布式服务调用共用业务服务完成具体业务操作。
文中还提到了网站的价值观,我很认同。网站的价值在于它能为用户提供什么价值,所以网站在很小的时候就去追求架构是舍本逐末,得不偿失的。小型网站最需要做的就是为用户提供好的服务来创造价值,得到用户的认可,活下去,野蛮生长。小型网站首先要能够生存,才有发展成大型网站的机会。
最后就是网站架构的误区,不能以为的追随大公司的解决方案,大公司的经验和成功模式固然很重要,值得学习和借鉴,但我们还是要有坚持自己的勇气,从自己的实际业务出发,而不是盲从。网站技术是为业务而存在的,不要一味追求时髦的技术而忽视了业务的发展。不能企图用技术解决所有问题,就好像12年的12306崩溃的问题,我们能说是它的技术不成熟不够好吗,它真正的问题不在于它的技术架构,而是业务架构,它没有考虑到当时几亿中国人一票难求,却推出了0点出售,类似于秒杀的噱头,这也是导致它崩溃的主要原因,访问量太大。所以后面它引入了排队机制、整点售票调整为分时段售票。我们要明白技术是用来解决业务问题的,而业务的问题,也可以通过业务手段去解决。
这就是第一天阅读所了解到的内容。