云计算下的多层服务器集群架构

对于超大型互联网应用如Google搜索,淘宝网,阿里巴巴SaaS平台等需要云计算的有力支撑, 而以普通PC组建超大规模计算集群是一个常见选择。

对于Web Server和App Server集群来说,通过大规模线性扩展和集群化,可以很好的提升网站整体的并发访问量和整体性能。

1. 扁平式负载集群
一个常见的集群设计是扁平式负载集群(Flat Cluster),一台或多台Apache + 多台App Server,通过Apache进行负载均衡。如下图所示。
(注:为简单起见,这里不考虑硬件负载,DNS,Squid等其他节点因素,下图中3台JBoss仅作示意,实践中可扩展到最大允许个数)


扁平式负载集群能够实现基本的负载均衡,上图中使得部署在JBoss上的应用能提供3倍的并发量。
随着应用规模增长,App Server可以水平扩展。但当JBoss节点增加到一定数量时,Apache成为瓶颈所在,主要是Apache和后端JBoss集群之间要建立更多的连接,而对于Apache服务器,连接资源是有限制的。
扁平式还有个维护问题,1+N的模式,要增加,减少JBoss节点都要在Apache端处理,对HA会有短暂影响。

2. 多层负载集群

下图中
Apache 1具有更高的处理能力,作为多层集群的前端。
Apache 2.x 具有和扁平式集群中的Apache相同的处理能力。

其中Apache 2.x 层相当于增加了一个虚拟层,对于Apache 1来说,只需要管理和交互3台服务器。而下层的子集群可根据需要灵活的进行水平扩展。

3. 多层分布式数据库
多层集群思想对于数据库切分尤为有用。
在扁平式下(参见图1),假设1000万注册用户分10个库,则每个库要处理100万用户的业务数据。
而在多层分布式数据库下,虚拟层仍保持 10个虚拟,但不处理实际数据;每个虚拟节点下再设置 10个实际的数据库,那么,此架构下,共100个数据库实例,每个只需要处理10万用户的业务数据,仍有90万的剩余处理能力留作未来容量。因此,整个分布式数据库的处理能力大大提升。

你可能感兴趣的:(apache,应用服务器,jboss,云计算,阿里巴巴)