当前位置:首页> 网站建设技巧> 大型网站架构设计学习笔记

大型网站架构设计学习笔记

发布时间:2020-05-10 08:00:00

大型网站面临的主要挑战是:大容量(大量请求/大量数据[海量数据])、高并发性(大峰值并发)、高可用性(724业务不中断)、强安全性*!!!

高可用性:可用性,始终可用,可正常使用。在特殊情况下,一些关键功能可用或主要功能可用!从系统的角度来看,有些客户是可以利用的!在特殊情况下不可用。必须尽快恢复!

高性能:性能;快速系统响应(低延迟)、大吞吐量(在相同资源下支持更多并发请求)

强安全性:安全性;无数据泄露,隐私得到保护,可防止攻击,操作有审计

可扩展性:可扩展性;XYZ扩展;

灵活:

融合是指当系统中的某个服务出现异常时,如呼叫超时或不可用时,融合对该服务的呼叫,随后的呼叫直接返回,并在服务恢复后恢复呼叫的机制。

熔断是一种防止系统雪崩的自动保护机制。保险丝由系统实时检测,满足条件后自动触发。

主要特点:

指在特殊情况下(系统资源有限、处理能力不足等),主动缩小业务(页面)或服务的功能范围,停止提供非核心关键功能,如页面的某些功能(如产品详细信息页面只返回10条评论,不需要实时的库存查询等)或一些功能的服务,从而稍微保证核心功能的可用性。

降级通常是手动触发的(由配置开关支持),相应的方案需要专门设计,通常会有代码入侵。

主要特点:

它是指将请求流量限制到目标系统、服务、节点(如网关)、资源(如数据库、缓存)以保护其正常可靠运行的机制。

流限制通过在一个时间窗口内限制并发访问/请求或请求来保护系统。一旦达到限制速率,系统可以拒绝服务(定向到错误页或通知资源不可用)、排队或等待(如秒杀、评论、命令)、降级(返回寻底数据或默认数据,如产品详细信息页上的默认库存)

目前开发高并发系统常用的限制方法有:限制总并发(如数据库连接池、线程池),限制瞬时并发(如nginx的limit﹣conn模块,用于限制瞬时并发连接),限制时间窗口内的平均速率(如guava的RateLimitor和nginx的limit﹣req模块,用于限制平均每秒速率);其他限制包括远程接口调用速率、限制MQ消耗速率。此外,电流可以根据网络连接数、网络流量、CPU或内存负载等进行限制。

常用限流算法:漏桶和令牌桶。

注意:有些场景不能通过缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(比如评论、订单)、频繁的复杂查询(评论的最后几页)。因此,需要有一种方法来限制这些场景的并发/请求量,即流限制。