作者: Fenng
|
可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明
网址: http://www.dbanotes.net/arch/ebay_db_scale_out.html
对于 eBay ,我盲人摸象一样写了好几篇 Blog ,暂列一下:
今天又重新读了一下这篇《The eBay Architecture --Striking a balance between site stablility, feature velocity, performance, and cost》
,觉得数据层的扩展经验也很有意思。
通过功能划分不同数据库,然后根据主要访问路径水平分割数据库。这句话太空了,类似 MySQL DB 大家常采用的 Shard 思路。
减小 DB 资源开销
数据库上没有业务逻辑
。这包括:不用存储过程; 只有少量比较简单的触发器。
把CPU 开销比较高的工作迁移到应用上。这包扩:参考完整性检查(嗯,检查一下你的 DB 是否再用外键? ); 连接(Join), 排序。
应用服务器尽量 Prepared 语句以及绑定变量的广泛使用。
最小化 DB 事务
自动提交(Commit)大多数主要的数据库写操作。
客户端绝对没有事务(业务逻辑)
。这包括: 单个数据库通过匿名 PL/SQL
块进行事务管理; 没有分布式事务。对于"事务", 相关信息可以从 eBay 首席架构师 Dan Pritchett 的访谈
得
到确认。没有事务更没有分布式事务这一点比较关键,这也是因为 eBay 的商业逻辑天然性质(否则也不容易做),所以可以做到 Scale
Out,而最近了解到 Paypal 则因为交易逻辑比较复杂,只能是 Scale Up. Paypal
的技术信息一向比较封闭,谁能告诉我一点额外的信息呢?
分享到:
相关推荐
4. **数据层的模块化设计**:数据层应采用模块化设计,不同业务模块对应不同的数据库,这有利于数据的隔离和保护,同时也方便于数据层的扩展和优化。 ### 结语 SaaS扩展性的实现并非一蹴而就,它需要基于SOA的原则...
通过采用 DAL 抽象层,eBay 能够高效地处理海量数据,同时保持系统的可扩展性和可靠性。本文详细介绍了 DAL 的各个方面,包括其结构、功能和服务。此外,还讨论了为何需要 DAL 以及它如何帮助解决大型分布式系统中的...
在缓存层,eBay利用高性能的缓存系统(如Redis或Memcached)来存储经常访问的数据,减少对数据库的直接访问,提高查询速度。此外,使用缓存还可以减轻后端服务器的压力,提升用户体验。 eBay的搜索功能是其核心竞争...
这一演讲不仅揭示了eBay在全球电子商务领域的技术架构和工程实践,还展示了该公司如何应对大规模数据处理、系统可扩展性以及持续创新的挑战。 ### 关于Tony Ng Tony Ng在技术领域有着丰富的经验,他曾任职于eBay、...
面对如此爆炸性的数据增长,eBay的大数据架构需要具备高度的扩展性和适应性。一方面,公司处理着庞大的交易数据,如每秒售出的商品种类繁多,从手机到服装、家具,再到电子产品,这些交易数据构成了eBay业务的核心。...
1. **横向扩展而非纵向扩展**:每一层都采用水平扩展策略,通过功能分解提高系统的可扩展性。 2. **异步集成优先**:减少组件间的依赖性,提高系统的可用性和可伸缩性。 3. **虚拟化技术的应用**:利用虚拟化技术...
eBay的这四大架构原则,不仅是其技术团队多年实践经验的总结,也为其他企业提供了宝贵的参考案例。通过遵循这些原则,可以有效地解决大规模分布式系统中的常见问题,从而构建出稳定、高效、可扩展的应用程序。无论是...
综上所述,eBay的架构设计体现了现代大型互联网公司的最佳实践,旨在提供高可用、高性能、可扩展的服务,同时保证数据安全和用户体验。通过不断地优化和创新,eBay持续满足其全球用户的快速增长需求。
标题“eBay Architecture - Scalability with Agility”及描述同名,揭示了eBay如何通过灵活且可扩展的架构来应对日益增长的数据量、用户需求以及业务挑战。下面,我们将深入探讨这一主题,理解eBay是如何实现其架构...
2. 水平切分:为了应对单个功能需求的增长,eBay采用无状态设计,通过负载均衡轻松实现应用层的水平扩展。数据库层面则通过数据水平分割(sharding)来分配负载,如用户数据、商品数据等分别在多台主机上分布。 3. ...
数据通过API或文件形式传输,系统分为批处理层、流处理层和服务层。然而,这种架构存在高延迟、维护成本高和扩展性差的问题,且由于数据源多样,导致兼容性问题。\n\n**第二代系统架构**\n\n为了解决上述问题,eBay...
eBay通过使用Java企业版(Java EE)的组件,如Servlet、JSP和EJB,实现了高效且可扩展的服务层。此外,Java的并发处理能力也帮助eBay处理海量的并发请求,确保系统的稳定运行。 二、架构设计的关键点 1. 模块化...
3. **综合层模式**:涉及数据访问对象、服务催化剂、域存储等,用于处理数据持久化和业务逻辑与数据访问之间的解耦。 #### eBay V3架构的发展 eBay从早期的C++/ISAPI DLL的双层架构转向J2EE架构,这标志着eBay从...
【大数据与云计算培训学习资料:eBay大数据平台介绍】是一份深入探讨eBay大数据平台的文档,涵盖了eBay数据平台的历史、发展以及大数据服务的主要应用场景。以下是对该文档内容的详细解析: 一、数据平台历史 eBay...
1. **分层架构**:eBay系统通常采用分层架构,包括表示层、业务逻辑层和数据访问层。这种设计使得各层职责明确,易于维护和扩展。 2. **微服务架构**:随着业务复杂度增加,eBay可能会采用微服务架构,将大型应用...
也正是通过这个项目我们搭建了大量的软件实现的边缘节点,实现了基于软件的4层和L7负载均衡,其中4层的实现是基于IPVS,L7的实现基于Envoy。 在传统基于硬件负载均衡的架构中,eBay的公网流量都是经过边缘路由器...
亿贝的数据分析平台由多个关键组件构成,旨在提供稳定可靠、可扩展性强的服务: 1. **大数据分析挑战**:为了应对海量数据处理的挑战,亿贝采用了多种数据集成和处理工具,如Ab Initio、UC4 Pipeline等,确保数据...
当前,淘宝数据仓库架构分为ODS层和计算层,采用4节点RAC环境负责数据的实时同步与备份,而12节点RAC则专注于复杂的数据计算任务,辅以Hadoop分布式计算框架。这种分层设计确保了数据的高效处理与安全存储,同时也为...