15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 大型网站架构设计模式

大型网站架构设计模式

时间:2023-10-02 18:54:01 | 来源:网站运营

时间:2023-10-02 18:54:01 来源:网站运营

大型网站架构设计模式:最近阅读了《大型网站技术架构》一书,受益匪浅,强烈推荐刚开始步入职场的同学学习,当然对于我这个有两年半Web前端工作经验的同学来说,也收获良多,有一种想见恨晚的感觉。

这本书从搭建一个小型网站架构开始介绍,逐渐丰富羽翼,慢慢演变成一个大型网站架构设计。书中提到的关于Web端的架构,80%我在公司的项目里都有所接触,但是之前这些知识点只是比较零碎的存在于我的思维中,没有认真思考过为什么需要这个东西的存在,或者这些技术之间有什么联系。通过阅读《大型网站技术架构》,再结合项目中的实践,逐渐清晰了这些知识点之间的串联关系,有一种醍醐灌顶的感觉。

以下是本书的阅读笔记及摘录。


大型网站架构模式

为了解决大型网站面临的高并发访问、海量数据处理、高可靠运行等一系列问题与挑战,大型互联网实践出了许多解决方案,从而逐渐形成大型网站架构设计模式。

分层
分层是指将系统在横向维度上切分成几个部分,每一部分负责相对比较单一的职责,然后通过上层对下层的调用组成一个完整的系统(禁止跨层或逆向调用)。一般大型网站软件系统分为应用层、服务层、数据层。

由于各层之间具有一定的独立性,只要调用约定保持不变,各层可以根据自身发展需要独立演化,不需要其他层做出相应调整。

分层架构是逻辑上的,在物理上,三层结构可以部署在同一台物理机器上,但随着业务的发展,网站拥有越来越多的用户访问,三层结构最好分别部署在不同的服务器上,使网站拥有更多的计算资源以应对越来越大的访问量。

分割

分割可以理解成是将软件进行纵向的切分,每一个模块负责独立的功能,将模块包装成高内聚低耦合的单元,一方面有助于软件的开发和维护,另一方面,不同模块可以实现分布式部署,提高网站的并发处理能力和功能拓展能力。

比如在应用层,可以对不同的业务进行分割,例如以某团app为例,将外卖、电影、打车分割成不同的应用,有独立团队负责,部署在不同服务器上。如果一个业务比较复杂,会继续分割,比如外卖又可以分割为广告、购物车、会员等。这些模块无论是在逻辑上还是物理部署上,都可以是独立的。

分布式

分布式是指多台计算机完成相同的功能,或者多台计算机处理不同的功能,计算机越多,能够处理的并发访问和数据量就越大,进而提供更好的服务。常用的分布式包括:分布式应用和服务、分布式静态资源、分布式数据和存储、分布式计算等。

集群

集群是指多台服务器部署相同的应用,从而构成一个集群,然后通过负载均衡技术共同对外提供服务。当一台服务器发生故障的时候,负载均衡设备或者系统的失效机制会将请求转发到集群的其他服务器上,使服务故障不影响用户使用。即使是访问量很小的应用,最少也应该部署至少两台服务器构成一个集群,目的就是为了提高系统的可用性。集群是分布式的思维的一种体现形式。

缓存

缓存是指将数据存放在距离计算机最近的位置以加快处理速度,大型网站构架设计在很多地方都使用了缓存技术。

使用缓存有两个前提条件:一是数据访问热点不均衡,某些数据会被更频繁的访问;二是数据在某个时间段内有效,不会很快过期。

在网站应用中,缓存数据不仅可以加快用户的访问速度,还可以减轻后端应用和数据存储的压力。

异步

异步方式处理业务可提高系统可用性、加快网络相应速度、消除并发访问高峰,因为生产者服务器请求后,将数据写入消息队列,不需要等待消费者服务器处理就可以返回。但是异步的方式可能会对用户体验、业务流程造成影响,需要网站产品设计方面的支持。

冗余

网站需要7*24小时运行,为了避免宕机时造成网站不可用或数据丢失,就需要一定程度的冗余服务器运行,数据冗余备份,这样当某台服务器宕机时,可以将其上的服务和数据访问转移到其他机器上。

自动化

安全

做好互联网安全防范措施,包括XSS攻击、CSFR攻击等等。

大型网站核心架构要素

性能

性能是网站架构设计的一个重要方面,任何软件架构设计方案都必须考虑可能带来的性能问题。

在浏览器端,可以通过缓存、页面压缩、合理布局、建设cookie传输等手段改善性能。还可以使用CDN,将内容分发至离用户最近的网络服务商机房,减少数据传输路加快数据获取。或者部署反向代理服务器,缓存热点文件,加快请求响应速度。

在服务器端,可以使用服务器本地缓存和分布式部署,鉴权请求处理速度,减小数据库负载压力。或者通过异步操作加快用户端响应速度。

在代码层面,可以通过使用多线程、改善内存管理手段优化性能。

可用性

服务器宕机是不可避免的事情,但是必须尽最大可能保证网站的可用性。

提高网站可用性的主要手段是冗余,应用部署在多台服务器上同时提供服务,数据存储在多台服务器上互相备份,这样任何一太服务器宕机都不会影响应用的整体可用性,也不会导致数据的丢失。

伸缩性

伸缩性是指通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力和不断增长的数据存储需求。衡量架构伸缩性的主要标准是,是否可以用多台服务器构建集群,是否容易向集群中添加新的服务器,且加入新的服务器后,是否可以提供和原来的服务无差别的服务。集群中容纳的总的服务器是否有限制。

扩展性

网站的扩展性架构关注网站的功能需求,衡量网站架构扩展性好坏的主要标准就是网站增加新的业务产品时,是否可以实现对现有产品透明无影响,不需要任何改动,或者很少改动既有业务功能就可以上线新产品。

安全性

网站的安全架构就是保护网站不受恶意访问和攻击,保护网站的数据不被窃取。衡量网站的安全架构的标准就是针对现存和潜在的各种攻击与窃密手段,是否有可靠的应对策略。




以上是《大型网站技术架构》一书主要阐述的概念,在第2篇“架构”中,分别对“网站核心架构要素”进行了详细的介绍,并在第3篇“案例”中举例分析。书本将分层、分割、集群、缓存等大型网站设计模式的思想融合贯通在所讲述的知识点中,并且讲述的内容和实际开发体验贴切,方便结合当前自己从事的项目进行分析,理解更深刻。

不过纸上得来终觉浅,最终还是需要自己不断在实际业务中进行探索、学习与应用,真正将书本读薄消化融于己。

关键词:设计,模式,大型

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭