大型网站核心架构中的"高伸缩性"设计方法

🌙
手机阅读
本文目录结构

什么是伸缩性

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

衡量好坏的标准

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

对于应用服务器集群

只要服务上不保存数据,所有服务器都是对等的,通过使用合适的负载均衡设备就可以向急群众不断加入服务器

对于缓存服务器集群

需要改进缓存路由算法保证缓存数据的可访问性

  • 加入新的服务器可能会导致缓存路由失效,进而导致集群中大部分缓存数据都无法访问;
  • 虽然缓存的数据可以通过数据库重新加载,但是如果应用已经验证依赖缓存,可能会导致整个网站崩溃

数据库

分为关系型数据和非关系数据库

关系数据库

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

NoSQL 数据库

由于先天就是为海量数据而生的,因为伸缩性支持都不错,可以做到较少运维参与的情况下实现集群规模的线性伸缩;


AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

目前重心已经放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>