【CDP-云设计模式】第4章,1.横向扩展模式(Scale Out Pattern)
来源:互联网 发布:tomcat 启动端口 java 编辑:程序博客网 时间:2024/05/21 09:00
1.要解决的问题
为了应对大流量,通常会需要一个高配置的Web服务器。这种使用更高配置的设备来提高处理性能的方法称为“纵向扩展”。
然而这种方法有一些问题。一般来说,高性能服务器的配置越高,每个单元的处理成本就越高。而且大家都知道服务器的规格是有限制的——它的性能不可能无限制地提高。
2.云模式的说明
这种用多个相同规格的服务器并行处理高流量的方法称为“横向扩展”。
你可以创建多个虚拟服务器并使用负载均衡器来给每一个虚拟服务器分配负荷。根据不同的系统,流量可能会在几周、几天甚至几小时内剧增。AWS云可以使你很轻松地动态更改虚拟服务器数量,从而能够配合流量的巨大变化。
3.实施
你可以结合使用这三种服务:负载均衡服务(ELB)、监控工具(CloudWatch)以及自动横向扩展服务(Auto Scaling),来轻松地构建一个可以根据负荷量实现自动纵向扩展的系统。
(步骤)
建立多个在ELB控制下的并行EC2实例(作为Web/AP服务器)。
创建一个用于启动新的EC2实例的AMI。
给定一个用于触发增减EC2实例个数的条件(指标)。通常会采用EC2实例的CPU平均利用率、网络流量值、会话数目、EBS延迟时间这一类的指标。
使用CloudWatch来监测这些指标,并将其设置为一旦系统满足特定条件就发出警告。
将Auto Scaling设置为当收到警告则增加或减少EC2实例数量。
当完成以上设置,你就能实现自动扩展。例如,当CPU平均利用率持续5分钟超过70%,系统利用之前准备好的AMI启动2个新的EC2实例。当然,你还能根据环境减少EC2实例的数量。
4.配置
5.好处
保证了服务的连续性,因为EC2实例的数量会根据流量的增加而自动增加。
减少了开支,因为在流量较低时可以减少EC2实例数量。
对于管理员来说,降低了工作量,因为EC2实例的数量能根据流量的变化自动增减。
与纵向扩展相比,处理能力的极限变得非常大,因为可以在ELB的控制下并行地提供所需数量的EC2实例。
6.注意事项
它不能应对剧烈的或快速的流量变化,例如几分钟内流量翻倍或增至三倍。事实上,这是因为在确定需要增加EC2实例数量后还需要一些时间才能完成实际数目的增加。在这种情况下,你需要制定一个EC2实例在特定时间增加的计划。先保证有足够多的额外EC2实例来提前应对负荷,然后再删除不需要的EC2实例。
考虑是否要离开对ELB的如HTTP会话管理、SSL过程等,或者是否需要在控制服务器中进行处理。
由于ELB没有提供根据规格来改变负载分配量的机制,所以被控制的EC2实例类型最好都相同。
为了增加容错性能,你可以跨多个AZ来实现横向扩展。参见多数据中心模式。这时,为了让每一个AZ能有一样的分配,实例增加的数量应该是AZ数目的倍数。
当第一次给新启动的EC2实例进行SSH连接时,在某些情况下,为了在登录时验证主机会交互式地执行指纹验证,这时,像这种从外部使用SSH自动处理的功能将被禁用。
当EC2实例需要更新时,你同样需要更新Auto Scaling中用于启动实例的AMI。
7.其他
- 关于执行纵向扩展时的文件共享问题,请参见克隆服务器模式、NFS共享模式和NFS复制模式。
- 关于会话管理请参见状态共享模式。
- 参见预定横向扩展模式。
- 【CDP-云设计模式】第4章,1.横向扩展模式(Scale Out Pattern)
- 【CDP-云设计模式】第4章,9.预定的横向扩展模式(Scheduled Scale Out Pattern)
- 【CDP-云设计模式】第2章,3.纵向扩展模式(Scale Up Pattern)
- 【CDP-云设计模式】第2章,1.快照模式(Snapshot Pattern)
- 【CDP-云设计模式】第3章,1.多服务器模式(Multi-Server Pattern)
- 【CDP-云设计模式】第5章,1.网络存储模式(Web Storage Pattern)
- 【CDP-云设计模式】第6章,1.写代理模式(Write Proxy Pattern)
- 【CDP-云设计模式】第7章,1.数据库复制模式(DB Replication Pattern)
- 【CDP-云设计模式】第8章,1.队列链表模式(Queuing Chain Pattern)
- 【CDP-云设计模式】第9章,1.引导程序模式(Bootstrap Pattern)
- 【CDP-云设计模式】第4章,2.克隆服务器模式(Clone Server Pattern)
- 【CDP-云设计模式】第4章,3.NFS共享模式(NFS Sharing Pattern)
- 【CDP-云设计模式】第4章,4.NFS复制模式(NFS Replica Pattern)
- 【CDP-云设计模式】第4章,5.状态共享模式(State Sharing Pattern)
- 【CDP-云设计模式】第4章,6.URL改写模式(URL Rewriting Pattern)
- 【CDP-云设计模式】第4章,7.改写代理模式(Rewrite Proxy Pattern)
- 【CDP-云设计模式】第4章,8.缓存代理模式(Cache Proxy Pattern)
- 【CDP-云设计模式】第2章,2.印章模式(Stamp Pattern)
- 邦德I【推荐】
- mongo3.0权限设置问题
- Android代码混淆(上)
- STC51单片机 让keil生成可以下载到单片机的Hex文件
- 题解:两仪剑法(nefu116)(欧几里得算法)
- 【CDP-云设计模式】第4章,1.横向扩展模式(Scale Out Pattern)
- Java按行读写文本文件
- 在web服务器上运行jsp文件
- GPRS 编程注意事项
- 平凡的生活(一)
- Hdu5366 The mook jong
- 反汇编
- [知其然不知其所以然-32] Queued Spinlock
- 字节对齐