美国eBay高可用环境分析
eBay(www.ebay.com)是世界上最大的C2C电子商务网站,到2007年年底,该网站的注册用户数量达到2.48亿,并存有10亿张以上的图片,该网站每天要支撑10亿次的PV,有合计2P(1P=1024T)的数据量,这么庞大的一个系统,还能整体上保证99.94%以上的高可用性。
那么,eBay是怎样保证这么大的系统,还有这么高访问量的高可用呢,这里先看看他们的规模与高可用构架结构(见图1-22)。
l 为了支撑这么多的业务量,有16000台以上的Web服务器,运行J2EE,以及1000台以上的逻辑数据库分布在400个不同的物理主机上,实现了良好的水平扩展性,每天的SQL执行量超过了440亿次。
l 数据库运行在Oracle上,应用服务器采用websphere。每个数据库至少有3个在线的备份,分布在8个不同的数据中心。数据库中没有存储过程,只有少量的触发器,把很多 CPU密集型的任务从数据库迁移到Web服务器上,因为数据库更容易成为瓶颈,而Web服务器是廉价可扩展的。数据库采用多点复制,可负载均衡,不采用分布式事务。
l 应用构架方面,采用连接池,应用层采用多层结构。eBay最大的成功在于解决了两个关键性的技术:分布式的数据库与实时的Search。
可以看到,eBay最核心的技术就是分布,首先Web服务器是分布的,存在16000台以上的Web服务器,相对于比较集中的数据库来说,Web服务器更容易扩展。为了保证数据库的负载最小,eBay采用了很多策略,把负载从数据库转移到可扩展的Web服务器上。
在数据库上面,eBay是先把数据库按照应用在一定程度上垂直分割,然后采用sheard plex水平分割,实现读写分离的分布策略。数据库分布在多个数据中心,应用通过数据层与负载均衡设备访问数据库,根本不必要关心数据库的位置在哪里。
另外,因为数据分布在多个数据中心,而这些数据中心并不在一个地点,也就实现了数据的容灾保护。当写站点发生故障的时候,只要切换到其他一个备用站点即可。
1.6.2 Myspace构架分析
上面分析了eBay的案例,再来看另外一个案例,那就是Myspace(www.myspace.com),从目前的情况来看,Myspace的月访问量超过400亿,并超越了YAHOO。
Myspace采用的是Ms SQL Server,但是,能做到这么好的性能与访问量,是很不容易的,这里分析一下它的高可用发展历程。
u 读写分离分布技术
Myspace最初只有两台老式的Web服务器与一个Dell 双CPU,4GB内存的PC Server数据库服务器,数据库是SQL Server。当2004年Myspace有50万用户的时候,数据库服务器实在不能满足当时的需求,Myspace采用3台SQL Server服务器,一个为主,所有的数据都向它提交,再由它复制到另外两个数据库上,实现了最简单的读写分离。
u 垂直分割技术
在2004中,Myspace用户达到1~2百万,存储成为当时最大的瓶颈,因为IO的响应时间过长,导致用户无法完成自己的请求。这个时候,Myspace对数据库采用垂直分割的技术,不同的数据库运行不同的业务,存储也采用了SAN存储网络技术,提高了系统的性能与可靠性。
u 水平分割技术
在用户越来越多的情况下,当用户继续增加到3百万后,采用以上垂直分割的技术也出现了问题,如一项单独的业务在一个数据库中都可能成为瓶颈。最初为了适应单个业务的增长,Myspace采用了更好的机器,但是,更好的机器并不能解决数据量增长问题,马上又达到新的瓶颈。这个时候,Myspace采用了分布计算与水平分割技术,按照用户进行水平分割,一个数据库大致保存200万个左右的用户以及对应用户信息。
u 虚拟化技术与Cache技术
水平分割解决了数据库主机的问题,但是,有些特定数据库上的用户可能数据量特别巨大,但是有些数据库上的用户数据量可能又很小,导致存储设备使用严重不均衡。这个时候,Myspace采用了3PARdata的虚拟化存储技术,让存储设备统一管理,这样整个SAN被当作一个巨大的存储池,不再要求某个特定的存储设备为特定应用服务。
当用户越来越多,压力越来越大,Myspace启用了新的策略以减轻存储系统的压力,增加数据缓存层——位于Web服务器和数据库服务器之间,其在内存中建立被频繁访问的数据副本,以前100个用户查询同一数据,需要查询数据库100次,现在只需要1次。如果页面变化,缓存中的数据将从内存中擦除,然后重新从数据库获取。
现在,Myspace已经超过2600万用户,设备已升级到SQL Server 2005版,因为可以支持64位系统,这样可以支持更大的内存,2006年后每台机器的标准配置是64GB内存。
从以上的情况来看,Myspace采用了高可用环境中的必需的几项技术:
首先就是分布式计算架构,包括应用与数据库,先是简单的读写分离,当读写分离不能适应需要的时候,采用了垂直分割技术,当垂直分割技术也不能适应需要的时候,最后采用了按照用户水平分割的技术。
然后,当存储过于分散的时候,存储系统出现了空间与负载使用的不均衡,他们又采取了虚拟存储的策略,把所有的存储整合成一个存储池,解决了存储设备使用不均匀的问题。
最后,当分布技术与虚拟存储也解决不了问题的时候,Myspace采用了Cache技术,这个才是它最终能承载那么大流量的关键,Cache技术可以快速地响应请求,大大地减少数据库压力。
分享到:
相关推荐
《构建最高可用Oracle数据库系统(Oracle11gR2RAC管理维护与性能优化)》从硬件和软件两个维度系统且全面地讲解了Oracle11g R2RAC的架构、工作原理、管理及维护的系统理论和方法,以及性能优化的技巧和最佳实践,能为...
《构建最高可用Oracle数据库系统(Oracle11gR2RAC管理维护与性能优化)》从硬件和软件两个维度系统且全面地讲解了Oracle11g R2RAC的架构、工作原理、管理及维护的系统理论和方法,以及性能优化的技巧和最佳实践,能为...
《构建最高可用Oracle数据库系统(Oracle11gR2RAC管理维护与性能优化)》从硬件和软件两个维度系统且全面地讲解了Oracle11g R2RAC的架构、工作原理、管理及维护的系统理论和方法,以及性能优化的技巧和最佳实践,能为...
Oracle 11gR2 RAC管理、维护与性能优化》从硬件和软件两个维度系统且全面地讲解了Oracle 11g R2 RAC的架构、工作原理、管理及维护的系统理论和方法,以及性能优化的技巧和最佳实践,能为构建最高可用的Oracle数据库...
《构建Oracle高可用环境:企业级高可用数据库架构、实战与经验总结》共分为五篇,依次为高可用性篇、数据处理篇、性能优化篇、系统维护篇和监控体系篇,其中对管理Oracle高可用数据库的讲解尤为细致,在帮助您学习...
官方资料:利用Oracle选件构建最大高可用架构数据中心 Oracle最大高可用架构• 利用Oracle RAC构建本地高可用数据中心架构• 利用Oracle GoldenGate构建异地容灾环境 业务连续性• RAC, RAC One Node, GoldenGate, ...
6.2 Oracle高可用性连接组件 6.2.1 SCAN别名 6.2.2 SCAN监听器 6.2.3 SCAN解析 6.2.4 SCAN兼容性配置 6.2.5动态注册与负载均衡 6.2.6 SCAN配置信息 6.2.7 SCAN VIP与节点VIP 6.2.8 CLUSTER_INTERCONNECTS...
### 构建Oracle高可用环境——企业级高可用数据库架构实战与经验总结 在现代企业的IT基础设施中,数据库系统的稳定性与可用性至关重要。一个高效、可靠的数据库架构不仅能保证业务连续性,还能提升用户体验,增强...
在“Oracle数据库11g高可用性白皮书”中,详细介绍了如何构建和维护一个稳定、可靠的数据库环境,以满足对零停机时间和数据无损的需求。以下是对白皮书中部分内容的概述: 1. 数据保护策略:Oracle 11g提供了多种...
构建Oracle高可用环境的第二部分主要介绍了一些关键技术和工具,特别是自动存储管理(ASM)和Oracle集群架构(RAC),以及如何在Oracle数据库中实现高可用性和数据管理。下面详细阐述了这部分内容的关键知识点。 ...
- **双机房架构**:为了提高系统的容灾能力,淘宝采用了Oracle DataGuard和Redo Mirror技术来实现跨机房的数据同步,确保数据的高可用性和一致性。 - **分布式存储(TFS)**:针对海量非结构化数据的存储需求,淘宝...
1. Oracle Maximum Availability Architecture (MAA): MAA是指Oracle提供的一个架构框架,用于构建高可用性、灾难恢复和弹性更强的系统。它通常会结合多种Oracle技术,如RAC、Data Guard、Golden Gate等。 2. Real ...
陈吉平在《高可用分布式数据库系统架构实践》这一演讲中,分享了淘宝网如何应对这些挑战,并逐步演进其数据库架构的过程。 #### 二、淘宝网站发展历程 淘宝网自2003年成立以来,经历了飞速的增长。初期日均页面访问...
通过他们的分享,读者能够获得一线的实战经验和深刻的行业洞察,从而更好地理解和掌握Oracle 11g在高可用性方面的关键技术。 ### 结论 《Oracle 11g 第2版的高可用性》是一本针对高级Oracle数据库管理员和架构师的...
- **V4.0:** 实现了水平扩展,包括读写分离和水平拆分,有效缓解了主库的压力,提高了系统的可用性和扩展性。 #### 三、分布式数据库架构的关键技术 ##### 1. 分布式存储 (TFS) - **定义**:用于解决海量非结构化...
2. **高可用性**:提供多种高可用性解决方案,如数据卫护、故障转移和负载均衡。 3. **安全性**:具有强大的安全特性,包括数据加密、访问控制和审计。 4. **多租户**:Oracle 12c及以后的版本支持多租户架构,允许...
Oracle Real Application Clusters 是一种用于构建高可用性和高性能数据库环境的技术。它可以支持多台服务器共同协作处理数据库事务,实现负载均衡和故障切换等功能。在SOA环境中,Oracle RAC可以通过提供稳定的数据...
Oracle Database 11g Release 2的高可用性特性是数据库管理员和IT专业人士在构建和维护关键业务系统时的关键考虑因素。Oracle 11g R2 提供了一系列强大的功能,旨在确保数据的持续访问和系统的无缝运行,即使在硬件...