[笔记] 大型网站技术架构——核心原理与案例分析 [二]

来源:互联网 发布:hadoop 书籍 知乎 编辑:程序博客网 时间:2024/05/22 09:47

2 大型网站架构模式

模式的关键在于模式的可重复性,问题与场景的可重复性带来解决方案的可重复使用(类似于设计模式中的模式)。

2.1 网站架构模式

2.1.1 分层

将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统。

在大型网站架构中也采用分层结构,将网站软件系统分为应用层、服务层、数据层。

优势:便于分工合作开发和维护

挑战:必须合理规划层次边界和接口,以及在开发过程中要严格遵循分层架构的约束,进制跨层次的调用以及逆向调用。

2.1.2 分割

纵向方面对软件进行切分。分割形成高内聚低耦合的模块单元。

2.1.3 分布式

对于大型网站,分层和分割的一个主要目的就是为了切分后的模块便于分布式部署。

分布式可能遇到的问题:

1. 网络延迟的影响

2. 服务器宕机

3. 数据一致性保证

4. 开发维护的问题

在网站应用中,常见的分布式方案有以下几种:

  • 分布式应用和服务
  • 分布式静态资源
  • 分布式数据和存储(传统的关系数据库分布式部署 / NoSQL )
  • 分布式计算(MapReduce)

2.1.4 集群

将独立部署的服务器集群化,即多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务。

2.1.5 缓存

  • CDN
  • 反向代理
  • 本地缓存:在应用服务器本地缓存这热点数据
  • 分布式缓存:将数据缓存在一个专门的分布式缓存集群

2.1.6 异步

在分布式系统中,多个服务器集群通过分布式消息队列实现异步,分布式消息队列可以看作内存队列的分布式部署。

  • 网站扩展新功能非常便利
  • 提高系统可用性
  • 加快网站响应速度
  • 消除并发访问高峰:将突然增加的访问请求数据加入消息队列中,等待消费者服务器依次处理,就不会对整个网站负载造成太大压力

2.1.7 冗余

服务器冗余运行+数据冗余备份

数据库——冷备份+热备份

灾备数据中心

2.1.8 自动化
2.1.9 安全

2.2 架构模式在新浪微博的应用


0 0
原创粉丝点击