第一篇:概述 -- 3.大型网站核心构架要素 笔记

本文介绍了大型网站架构设计的关键要素,包括性能优化、高可用性设计、伸缩性与扩展性的实现方式,以及确保系统安全性的策略。文章详细探讨了各种技术和方法,如使用CDN、负载均衡、缓存策略、数据库优化等手段提升性能;通过冗余部署提高可用性;采用集群、事件驱动和分布式服务等方法增强伸缩性和扩展性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大型网站核心构架要素 笔记

构架定义:

最高层次的规划,难以改变的决定,奠定了事物未来发展的方向和最终的蓝图。

软件架构:

有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。

其中,软件架构需要关注当前的系统功能需求、性能、可用性、伸缩性、扩展性和安全性。


一.性能

性能优化:

  • 在浏览器端通过浏览器缓存、页面压缩、合理布局页面、减少cookie传输。
  • 使用CDN,将网站静态内容发布至离用户最近的网络服务商机房,使用户可以最短的时间内访问数据;可以在网站机房设置反向代理服务器,缓存热点文件,加快用户请求处理,减轻数据库负载压力。
  • 使用服务器本地的缓存和分布式缓存,通过缓存内的热点数据处理请求。
  • 异步操作将用户请求发送至消息队列等待后续的任务处理,当前的任务直接返回给用户。
  • 将多个应用服务器组成一个集群对外服务,提高整体的处理能力,改善性能。
  • 通过多线程、改善内存管理等手段优化性能。
  • 数据库方面使用索引、缓存和SQL优化。

衡量网站性能重要指标有:响应时间、TPS (transaction per second,代表每秒执行的事务数量,可基于测试周期内完成的事务数量计算得出)、系统性能计数器。

通常,我们还要在系统高并发访问情况下,超出负载设计能力的情况下保证性能的稳定性。


二.可用性

高可用的设计目标:当服务器宕机的情况下,服务或者应用仍可用。

目前网站高可用的方式就是冗余,应用部署在多台服务器上同时提供访问,数据存储在多台服务器上互相备份,任何一台服务器宕机都不会影响整体应用的可用性,也不会导致数据丢失。

对于应用服务器,多台应用服务器通过负载均衡设备组成一个集群共同对外通过服务;对于存储服务器,需要对数据进行实时备份,以便将数据转移到有用的服务器上。


三.伸缩性

通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力和不断上身的数据存储需求。

衡量架构伸缩性的主要标准:

  • 是否可以用多台服务器构建集群;
  • 是否容易向集群中添加新的服务器;
  • 加入新的服务器后是否可以提供和原来服务器一样的服务;
  • 集群中可荣安的总的服务器数量是否有限制;

对于应用服务器集群:只要服务器上不保存数据,所有服务器都是对等的,可以用合适的负载均衡设备向集群中加入服务器。
对于缓存服务器集群:新的服务器可能会导致路由失效,使得大部分缓存数据无法访问。所以一般需要改进缓存路由算法保证缓存数据的可访问性。
关系数据库:很难做到大规模集群的可伸缩性,因此一般通过路由分区将部署有多个数据库的服务器组成一个集群。
NoSQL:对伸缩性的支持非常好。


四.扩展性

如何设计网站的架构使其能够快速的响应需求变化,是网站可扩展性的主要目的。

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

网站可扩展架构的方式主要是事件驱动架构和分布式服务。

事件驱动架构通常用消息队列实现,将用户请求和其他业务事件构成消息发布到消息队列,消息的处理者从消息队列中获取消息进行处理。将消息的产生和消息处理分离开,可以透明的增加新的消息生产中任务或者新的消息消费者任务。

分布式服务是将业务与可复用服务分离开,用分布式服务框架调用。


五.安全性

衡量网站安全的标准就是针对现存和潜在的各种攻击和窃密手段,能否有可靠的应对策略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值