六.伸缩性架构
1.应用服务器集群的伸缩性设计
HTTP请求分发装置->负载均衡服务器
a.负载均衡基础技术:
{HTTP重定向负载均衡}:优点比较简单,缺点性能较差(需要两次请求),使整个集群的伸缩规模有限,使用HTTP302响应码重定向,可能是搜索引擎判断为SEO作弊,降低搜索排名。
{DNS域名解析负载均衡}:优点减少负载均衡服务器维护操作,缺点没有控制权,缓存A记录,无法及时生效。常用方法:DNS域名解析到负载均衡服务器。
{反向代理负载均衡}:优点与反向代理服务器集成,部署简单。缺点性能可能成为瓶颈。
{IP负载均衡}:较反向代理负载均衡有更好的处理性能,但数据吞吐量受制于负载均衡服务器网卡带宽。
{数据链路层负载均衡(直接路由方式(DR))}:使用三角传输模式的链路层负载均衡使用最广泛。在LINUX上常用的有LVS(Linux Virtual Server)
b.负载均衡算法
{轮询Round Robin}:适用于所有服务器硬件都相同的场景
{加权轮询Weighted Round Robin}
{随机Random}
{最少连接Least Connections}
{源地址散列Source Hashing}
2.分布式缓存集群的伸缩性设计
a.Memcached分布式缓存集群的访问模型
b.分布式缓存的一致性Hash算法(一致性Hash算法+虚拟节点)
3.数据存储服务器集群的伸缩性设计
a.关系数据库集群的伸缩性设计
支持数据分片的分布式关系数据库产品:Amoeba,Cobar
{Cobar}:一个分布式关系数据库访问代理
b.NoSQL数据库的伸缩性设计
{HBase}:HRegion,HDFS,HMaster,HRegionServer