大型网站技术架构_3. 大型网站核心架构要素

3. 大型网站核心架构要素

什么是架构?
最高层次的规划,难以改变的决定。

软件架构的定义:
有关软件整体结构与组件的抽象描述,用于指导大型软件系统各方面的设计。

大型网站技术架构_3. 大型网站核心架构要素_第1张图片
image

3.1 性能

  • 浏览器端:浏览器缓存、页面压缩、合理布局页面、减少 Cookie 传输。
  • CDN、反向代理。
  • 应用服务器端:服务器本地缓存、分布式缓存、集群部署。
  • 通过异步操作将用户请求分发到消息队列。
  • 代码层面:多线程、改善内存管理。
  • 数据库服务器端:索引、缓存、SQL 优化、NoSQL 数据库。

衡量网站性能的指标:响应时间、TPS、系统性能计数器等。

3.2 可用性

网站高可用的主要手段是冗余,应用部署在多台服务器上同时提供访问,数据存储在多台服务器上互相备份,任何一台服务器宕机都不会影响应用的整体可用,也不会导致数据丢失。

应用服务器:负载均衡、无状态服务器。
存储服务器:数据实时备份、
软件开发的质量保证:预发布验证、自动化测试、自动化发布、灰度发布。

3.3 伸缩性

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

衡量架构伸缩性的主要标准:

  • 是否可以用多台服务器构建集群?
  • 是否容易向集群中添加新的服务器?
  • 加入新的服务器后是否可以提供和原来的服务器无差别的服务?
  • 集群中可容纳的总的服务器数量是否有限制?

应用服务器集群:保证无状体服务器。
缓存服务器集群:改进缓存路由算法。
关系数据库:路由分区。
NoSQL数据库。

3.4 扩展性

网站的扩展性架构直接关注网站的功能性需求

衡量网站架构扩展性的主要标准:

  • 在网站增加新的业务产品时,是否可以实现对现有产品透明无影响,不需要任何改动或者很少改动既有业务功能就可以上线新产品。
  • 不同产品之间是否很少耦合,一个产品改动对其他产品无影响,其他产品和功能不需要受牵连进行改动。

网站可扩展架构的主要手段:事件驱动架构、分布式服务。

  1. 事件驱动架构:消息队列。
  2. 分布式服务:将业务和可复用服务分离开来,通过分布式服务框架调用。
  3. 升级支持多版本服务。

3.5 安全性

衡量网站安全性架构的标准:针对现存和潜在的各种攻击与窃密手段,是否有可靠的应对策略?

你可能感兴趣的:(大型网站技术架构_3. 大型网站核心架构要素)