在制作软件的过程中,引入软甲架构的概念能够很大程度上提高软件质量。今天阅读了李智慧主编的《大型网站技术架构:核心原理与技术分析》部分内容,从软件的高可用性、可伸缩性和可扩展性分享我的读书心得。
一、可用性
可用性一般指的是网站的访问特性,在大型网站架构中,一旦网站出现故障,大量用户将无法访问网站,造成极大的经济损失。我认为可用性是网站架构中最基础也是最重要的特性。当然,对于大型网站来说,网站仅仅具有可用性是完全不够的,因该具备高可用性。和可用性相对比,高可用性可以连续运行,即使在系统运行高峰,也能将系统停机时间讲到最低。
对于大型网站来说,高可用是最基本的要求。因此,在架构设计上,要考虑到应用的高可用性,应该采用多个服务器集群的方式,实现应用的水平扩展和负载均衡。同时,还可以使用多种高可用技术,如主从复制、读写分离等,来保证系统的可用性。在hadoop集群、zookeeper、以及spark中都有使用高可用性,即使一次任务需要处理的数据量庞大,系统也不会死机。
在可用性的提高方面,负载均衡是最基本的措施之一,通过负载均衡,将用户的请求分配到多个服务器上,避免单个服务器承受过大的请求压力。此外,大型网站还需要采用容错和备份机制,确保在服务器故障时,能够快速恢复服务,并且不会丢失任何数据。
二、可伸缩性
网站的伸缩性是指在不改变网站软硬件的基础上,仅仅改变服务器的部署数量或模式来扩大或缩小网站的服务处理能力。可伸缩性也是网站重要的特性之一,我认为网站的伸缩性能够代表网站的韧性,网站失去韧性,网站服务处理能力便无法伸缩变化,导致网站失去用户的支持。
在保证网站可伸缩性方面,包含以下手段:
①水平扩展
②垂直扩展
在网站可伸缩性的应用方面,有单一功能应用、mysql数据存储、分布式存储服务器....
三、可扩展性
可扩展性指的是系统能够适应网站业务增长以及流量增大的能力,其核心是通过分层架构、模块化设计、负载均衡、数据分片等技术手段来实现。可扩展性同样是网站架构中很重要的一部分。大型网站往往用于大量用户同时使用,这也要求大型网站必须具有良好的可扩展性,保证用户能够正常访问数据。这一点可以参考12306网站的开发,并不是服务器够多就能支持用户的点击。
对于网站的可扩展性设计,可以从以下方面入手,包括硬件、软件、网络等方面。在硬件方面,可扩展性的设计可以采用集群化的方式来实现,即将系统拆分成多个节点,每个节点上运行相同的软件,从而提高系统的并发处理能力和容错能力。在软件方面,可扩展性的设计可以采用模块化的架构来实现,即将系统拆分成多个模块,每个模块处理自己的业务逻辑,从而提高系统的可维护性和扩展性。在网络方面,可扩展性的设计可以采用负载均衡的技术来实现,即将用户的请求分发到多个服务器上处理,从而提高系统的并发处理能力和可用性。
以上就是我今天关于可用性、可伸缩性、可扩展性的阅读笔记和一些理解。
标签:可伸缩性,架构,可扩展性,可用性,网站,服务器 From: https://www.cnblogs.com/jzz-111jy/p/17171360.html