大型网站核心架构要素有性能、可用性、伸缩性、扩展性和安全性(信息系统的质量属性有性能、可用性、可修改性、可测试性、安全性、易用性、可伸缩性、可重用性)。
其中,这里说的伸缩性和扩展性有什么区别呢?
伸缩性
伸缩性是指通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力,和不断增长的数据存储要求。
衡量架构伸缩性的主要标准就是:
1)是否可以用多台服务器构建集群
2)是否容易向集群中添加新的服务器
3)加入新的服务器后是否可以提供和原有服务器无差别的服务
4)集群中可容纳的服务器数量是否有限制
扩展性
扩展性则是一种功能需求。网站快速发展,功能也不断发展,网站的架构需要能够快速响应需求变化。衡量网站架构是否具有良好的扩展性,主要标准是网站增加新业务产品时,对现有产品是否透明、无影响,改动很少甚至无须更改就能上线新产品。显然不同产品耦合越少,影响就越小。
网站可扩展、伸缩架构的主要手段是
1)事件驱动架构
通常使用消息队列
2)分布式服务
将业务和服务分开,就是SOA、微服务之类吧。
主要摘自《大型网站技术架构核心原理与案例分析》,作者 李智慧