《大型网站技术架构:核心原理与案例分析》读后感
随着这几年网络的不断发展,人们对互联网的依赖程度不断加深。各大网站的用户体验各不相同。如淘宝双11 交易上千亿,系统运行基本正常、12306 车票系统的瞬间瘫痪,网站个人信息泄露等。一个大型网站需要面临高并发访问、海量数据分析处理、网站安全性等一系列问题。 《大型网站技术架构核心原理与案例分析》 比较全面介绍了目前大型网站面临的主要技术难点和解决方案。将理论与实际案例相结合,分析通俗易懂。对我帮助很大。但是,我对于里面的一些技术名词和架构思想,比如集群、分布式、负载均衡、缓存、高并发、高可用、系统安全等等之类的词语,完全没有一点概念,脑海中也根本没有类似的念头,有限的学习生活中也没有触碰过这些解决方案,看书的过程中大部分时间是处于懵逼状态的。
网站的可用性架构:
一、网站可用性度量
1.网站不可用时间(故障时间):故障修复时间点 - 故障发生时间点,即这段时间网站不能提供正常服务。
2.网站可用性指标:(1 - 网站不可用时间 / 总时间)*100%,可用性4个9即表示网站99.99%的时间是没有故障的。
二、网站可用性考核
1.网站可用性对外是用户服务承诺,对内是考核指标,故障分 = 故障时间 * 故障影响权重。
三、高可用的网站架构
1.硬件故障是常态,故网站高可用架构设计的主要目标是保证服务器故障时服务依然可用,数据以让保存并能访问。
2.实现高可用的主要手段:数据和服务的冗余备份和失效转移。
3.大型网站分层架构使得不同层次的服务器(应用、服务、数据),实施可用性的具体解决方案差异甚大。
网站的伸缩性架构:网站的伸缩性设计可以分成两类,一类是根据功能进行物理分离实现伸缩,一类是单一功能通过集群实现伸缩。前者是不同的服务器部署不同的服务,提供不同的 功能;后者是集群内的多台服务器部署相同的服务,提供相关的功能。
从不同功能进行物理分离实现伸缩来说:
纵向分离:也就是说分层后分离。就是将业务流程上不同部分分离部署,由此来实现系统的伸缩性。
横向分离:就是说分割业务后分离,把不同的业务模块分离部署,由此实现系统伸缩性。
网站的可扩展性架构:网站的可扩展性是指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力。构建可扩展的网站架构的核心思想是模块化,并在此基础上,降低模块之间的耦合性,提高模块的复用性。因为如果模块之间不存在直接调用,那么新增模块或者修改模块就对其他模块的影响最小,这样系统的扩展性会更好一些。