架构

大型网站架构模式

 

分层

 

分隔

定义: 在纵向对软件进行切分。

举例:网站业务拆分(购物、论坛、搜索、广告等),购物业务拆分(酒店业务、3C业务、小商品业务等)

分布式

目标: 分层和分割后的模块拥有更小的粒度,目的是分布式部署,便于使用更多资源(CPU、内存、存储等),提供更多服务。

注意事项:

  • 服务间调用通过网络,造成性能影响。
  • 服务器越多,宕机概率越大,服务可用性降低。
  • 数据一致性问题。
  • 依赖复杂。
  • 开发管理苦难。
  • 切莫为了分布式而分布式。

分布式方案:

  • 分布式应用和服务:分层和分割后的应用和服务模块分布式部署。
  • 分布式静态资源:静态资源(JS、CSS、图片等)分布式部署,动静分离。
  • 分布式数据和存储:海量数据存储,分布式NoSQL。
  • 分布式计算:实时计算,搜索引擎、MapReduce分布式计算框架。
  • 分布式配置:服务器配置实时更新。
  • 分布式锁:分布式环境下的并发和协同。
  • 分布式文件系统:云存储。

集群

不同服务器部署相同的模块功能通过负载均衡对外提供服务。提高并发性和可用性。

缓存

定义:将数据存放在距离计算最近的位置以加快处理速度。

举例:

  • CDN: 缓存静态资源。
  • 反向代理:缓存静态资源。
  • 本地缓存: 数据缓存在本机内存,减少访问数据库。
  • 分布式缓存: 可以缓存更多地数据。

异步

目标:降低系统间耦合性。

类型:

  • 单一服务:多线程共享内存队列。
  • 分布式系统:分布式消息队列。

异步消息队列特性:

  • 提高系统可用性:消费者故障不影响生产者继续处理业务请求。
  • 加快网站响应速度: 生产者处理业务请求后将数据写入队列,无需等待消费者处理完毕,减少响应延迟。
  • 消除并发访问高峰:突发事件、促销活动、热点事件。

 

 冗余

目标:数据冗余备份,当某台服务器宕机,可以将其上的服务和数据访问转移到其他机器,提高服务可用性。

类型:

  • 冷备份: 定期备份,存档保存。
  • 热备份: 主从分离,主从同步。
  • 灾备数据中心:实时同步网站程序和数据到多个数据中心,抵抗地震、海啸等不可抗力因素。

 

 

8. 自动化

目标:一切自动化。

类型:

  • 自动化代码管理:针对开发,代码版本控制、代码分支创建合并自动化。
  • 自动化测试:自动部署到测试环境,运行测试用例,发送测试报告,反馈测试结果。
  • 自动化安全检查:代码静态安全扫描,安全攻击测试。
  • 自动化部署:自动化部署到生产环境。
  • 自动化监控
  • 自动化报警
  • 自动化失效转移:将失效服务器从集群中隔离。
  • 自动化失效恢复:故障消除后重启服务,同步数据。
  • 自动化降级:遇到访问高峰时拒绝部分请求及关闭部分不重要服务,将系统负载降至安全水平。
  • 自动化分配资源:将空闲资源分配给重要服务,扩大其部署规模。

 

9. 安全

安全手段:

  • 用密码和手机校验码进行身份认证。
  • 加密通信。
  • 验证码机制防止机器人。
  • 进行编码转换等防止XSS、SQL注入。
  • 垃圾信息、敏感信息过滤。
  • 交易信息进行风险控制。

 

大型网站架构要素

 

1. 性能

手段

  • 浏览器端: 浏览器缓存、页面压缩、页面布局、减少Cookie传输、CDN等;
  • 应用服务器端:本地缓存、分布式缓存、消息队列、集群,多线程、改善内存管理;
  • 数据库服务器端:索引、缓存、SQL优化,NoSQL(优化数据模型、存储结构、伸缩性);

指标

  • 响应时间
  • TPS
  • 系统性能计数器

 

 可用性

手段:冗余

      • 应用服务器: 负载均衡 + 流量切换;
      • 存储服务器: 实时备份 + 访问转移 + 数据恢复

 

3. 伸缩性

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

  • 应用服务器: 无状态;
  • 缓存服务器: 改进缓存路由算法。注意严重依赖缓存场景下,缓存失效导致整个网站崩溃;
  • 关系数据库: 需在数据库外实现伸缩性,通过路由分区等手段将多个数据库组成集群;
  • NoSQL:先天为海量数据而生,线性伸缩。

 

 

4. 扩展性

标准:

  • 网站快速发展,功能不断扩展,系统架构能够使其快速响应需求变化;
  • 新增业务,对现有产品透明无影响;
  • 产品间很少耦合。

手段:

  • 事件驱动架构:通过消息队列实现,用户请求和其他业务事件是生产者,消息处理者是消费者,可以透明增加新的消息生产者任务或者消费者任务;
  • 分布式服务:将业务和可复用服务分离开来,通过分布式服务框架调用。新增产品可以通过调用可复用的服务实现自身业务逻辑。可复用服务升级变更时,通过多版本方式对应用实现透明升级。

 

 

5. 安全性

标准: 针对现存和潜在的攻击和窃密手段,是否有可靠的应对策略。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值