网站的伸缩性架构
指不需要改变网站的硬件设计,仅仅通过部署的服务器数量变更就可以扩大或者缩小网站服务处理能力。
架构的伸缩性
分层(纵向分离)
分割(横向分离)
单一功能通过集群实现伸缩
服务器集群的伸缩性设计
负载均衡
1.HTTP重定向实现负载均衡
优点:简单
缺点:浏览器需要两次请求服务器才能完成一次访问。
2.DNS域名解析负载均衡
优点:将负载均衡工作转给DNS
3.反向代理负载均衡
亿图绘制
4.IP负载均衡
在网络层通过修改请求目标地址,进行负载均衡。
5.数据链路层负载均衡
通过mac地址进行负载均衡
负载均衡算法
1.轮询
所有请求依次分发到每台应用服务器上,即每台服务器需要处理的请求数目都相同(适用于所有服务器硬件都相同的场景)
2.加权轮询
根据配置的权重将请求分发到每个服务器,高性能的服务器分配请求多。
3.随机
请求被随机分配到各个服务器上
4.最少连接
记录每个应用服务器正在处理的连接数,将新的请求分发到最少连接的服务器上。
分布式缓存集群的伸缩性设计
Memcached分布式缓存集群的访问模型
计算机的任何问题都可以通过增加一个虚拟层来解决。
计算机网络的七层协议,每一层都可以看做是下一层的虚拟层。
计算机操作系统也可以看做是计算机硬件的虚拟层。
Java虚拟机也可以看做是操作系统的虚拟层。
数据存储服务器集群的伸缩性设计
Mysql关系型数据库集群方案
小结:
高手之所以成为高手,是因为他们遇到了常人很难遇到的问题,并解决了。
百度有很多搜索的高手,
淘宝有很多海量数据的高手,
QQ有很多高并发业务的高手。
遇到问题,分析问题,最终总能解决问题。
本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/7687993.html,如需转载请自行联系原作者