大型网站核心架构要素

大型网站核心架构要素

  • 性能
  • 可用性
  • 伸缩性
  • 扩展性
  • 安全性

性能

  • 浏览器端:浏览器缓存,页面压缩,优化页面布局,减少cookie传输;CDN和反向代理

  • 应用服务器:本地缓存和分布式缓存,异步消息队列,集群

  • 代码层面: 多线程、改善内存管理

  • 数据库:索引,缓存,SQL,NoSQL

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

可用性

网站高可用的主要手段是冗余。

伸缩性

衡量架构伸缩性的主要标准:是否可以使用多台服务器构建集群,是否容易向集群中添加新的服务器。加入新的服务器后是否可以提供与原来无差别的服务。集群中可容纳的总的服务器数量是否有限制。

  • 应用服务器集群:负载均衡

  • 缓存服务器集群,新加入的服务器可能导致缓存路由失效,进而导致集群中大部分缓存数据都无法访问。需要改进缓存路由算法。

  • 关系型数据库支持数据复制,主从热备等机制,但很难做到大规模集群伸缩性。因此必须在数据库外实现,通过路由分区等手段将部署有多个数据库的服务器组成集群。

  • NoSQL数据库产品通常对伸缩性支持都比较好

扩展性

衡量网站架构扩展性好坏的主要标准:在网站增加新的业务产品时,是否可以实现对现有产品透明无影响,不需要任何改动或者很少改动既有业务功能就可以上线新产品。

网站可扩展架构的主要手段:

  • 事件驱动架构,也就是消息队列
  • 分布式服务

安全性

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

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