《大型网站技术架构》——第二章 大型网站架构模式

分层

横向维度
上层对下层的依赖和调用
合理规划层次边界和接口
禁止跨层次的调用及逆向调用

分割

纵向切分

分布式

将不同模块部署在不同的服务器上,通过远程调用协同工作。
问题:

  • 调用通过网络,对性能造成严重影响
  • 服务器越多,宕机概率越大,使网站可用性降低
  • 数据一致性、分布式事务难以保证
  • 网站依赖错综复杂可开发管理维护困难

分布式方案:

  • 分布式应用和服务:改善网站性能和并发性、加快开发和发布速度、减少数据库连接资源消耗、服务复用等
  • 分布式静态资源:动静分离
  • 分布式数据和存储
  • 分布式计算:特点是移动计算而不是移动数据,将计算程序分发到数据所在的位置以加速计算和分布式计算。
  • 分布式配置
  • 分布式锁
  • 分布式文件系统

集群

多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务
为了提供更好的并发特性、提高系统可用性

缓存

将数据存放在距离计算最近的位置以加快处理速度。缓存是改善软件性能的第一手段。还可以减轻后端应用和数据存储的负载压力。
CDN:内容分发网络,部署在距离终端用户最近的网络服务商。可缓存静态资源。
反向代理:部署在网站前端。可缓存静态资源。
本地缓存:本机内存。
分布式缓存:分布式缓存集群,通过网络通信访问缓存数据。
使用缓存有两个前提条件:一是数据访问热点不均衡,频繁使用的数据应该进行缓存;二是不会很快过期。

异步

降低耦合。
业务之间的消息传递不是同步调用,而是将一个业务操作分为多个阶段,每个阶段之间通过共享数据的方式异步执行。

  • 多线程共享内存队列
  • 分布式消息队列
    异步架构是典型的生产者消费者模式,两者不存在直接调用,只要保持数据结构不变,彼此功能实现可以随意变化而不相互影响。
  • 提高系统可用性:生产者消费者互不影响
  • 加快网站响应速度:响应延迟减少
  • 消除并发访问高峰:
    可能会对用户体验/业务流程造成影响。

冗余

服务器冗余运行,数据冗余备份
实现服务高可用
数据库的冷备份(定期备份)、热备份(主从分离)和灾备数据中心

自动化

发布过程自动化:自动化代码管理、自动化测试、自动化安全检测、自动化部署
运行过程自动化:自动化监控、自动化报警、自动化失效转移、自动化失效恢复、自动化降级(通过拒绝部分请求及关闭部分不重要的服务将系统负载降至一个安全的水平)、自动化分配资源

安全

好的设计绝对不是模仿,不是生搬硬套某个模式,而是对问题深刻理解之上的创造与创新。
对问题和需求是否真正理解与把握。

你可能感兴趣的:(架构)