《大型网站技术架构:核心原理与案例分析》阅读笔记1

今天读了《大型网站技术架构:核心原理与案例分析》的第一篇第一章和第二章,第一章主要讲的是大型网站架构的演化,第二章主要讲了大型网站的架构模式。感觉这本书有点偏理论性。

1 大型网站架构演化

1.1 大型网站特点

  • 高并发
  • 高可用
  • 海量数据
  • 用户分布广泛,网络情况复杂
  • 安全环境恶劣
  • 需求快速变更,发布频繁
  • 渐进式发展

1.2 演化发展历程

  1. 初始阶段:一台服务器(应用程序+数据库+文件)
  2. 应用服务和数据服务分离,使用三台服务器:应用服务器、文件服务器、数据库服务器
  3. 使用缓存改善网站性能(应用服务器缓存+分布式缓存服务器)
  4. 使用应用服务器集群改善网站的并发能力
  5. 数据库读写分离,利用数据库的主从热备功能,可将主数据库服务器数据转移到从服务器上
  6. 使用反向代理和CDN加速网站响应
  7. 使用分布式文件系统和分布式数据库系统(先可以考虑分库分表)
  8. 使用NoSQL和搜索引擎
  9. 业务拆分 --- 每个业务独立部署 ---- 通过消息队列进行数据分发
  10. 分布式服务

1.3 演化发展价值观

  1. 随需应变,大网站也是小网站慢慢发展而成的
  2. 网站业务是重点,理清业务问题才能安心发展技术

1.4 网站架构设计误区

  1. 盲目遵从大公司的经验
  2. 一味追求技术而不是业务
  3. 企图用技术解决所有问题(12306改网上窗口售票模式为分时段售票,引入排队机制)

2 架构模式

  1. 分层(网络通信协议--每一层关注自己的业务) 禁止跨层调用,以及逆向调用
  2. 分割:纵向切分,不同的功能和服务分开包装成高内聚和低耦合的模块单元。
  3. 分布式:分布式网络通信,分布式事物
  4. 分布式应用和服务,分布式静态资源,分布式数据和存储,分布式计算(搜索引擎的索引构建,数据仓库的数据分析和统计,定时任务)
  5. 集群:多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务。
  6. 缓存:CDN(内容分发网络),部署在距离用户终端最近的网络服务商;反向代理:缓存网站的静态资源;本地缓存,分布式缓存。
  7. 异步:业务之间的消息传递不是同步调用,而是将一个操作分成多个阶段,每个阶段之间通过共享数据的方式异步执行协作,典型的生产者,消费者模式。
  8. 冗余:数据库除了定期备份,存档保存,冷备份,主从分离,设置数据中心
  9. 自动化:发布,测试,监控报警,自动降级,自动分配资源
  10. 安全:身份认证,登录、交易网络通信进行加密,敏感数据加密,XSS,SQL注入进行编码转换等,对于垃圾信息,敏感信息进行过滤,重要操作进行风险控制。

借鉴:https://www.jianshu.com/p/df17a581d8f9

posted @ 2020-03-08 10:27  星辰°  阅读(79)  评论(0编辑  收藏  举报