用什么来衡量一天没有白过? 可能看到一篇好文章能算做一个条件。infoQ
上的这篇
Scalability Best Practices: Lessons from eBay
会让每个架构师都比较激动的。
过几天估计
infoQ 中文站
就翻译这篇文章了,所以只记录一点自己的想法好了。在其中的 7 个实战经验中,每一条都值得写篇学习笔记,我比较关注面向
DB
的几条。
水平切分
对于 eBay 这样个头的大 Web 应用,如果数据不能分片,就无从谈及扩展。这个话题我之前描述过一点
,文章中提及数据库层的切片要比应用层复杂许多,我想其中最大的一个难点就是不同用户之间的关联数据问题吧,否则就完全可以根据用户范围或者群体划分到不同的
DB
上。现实的应用总是如此复杂,让每个架构师都早生华发啊。
避免分布式事务
其中提到的前 Inktomi 工程师 Eric Brewer 提出的
CAP 定理
: Consistency (C), Availability (A), Partition-tolerance (P) ,最多能同时选择两个。三个不能同时实现。对于 eBay ,选择的是 A 和 P,牺牲了一致性,而通过系统的其它手段(比如事件系统)来追回事务的完整程度。BTW: 这次倒是没有提及
BASE
:)
虚拟化所有层次
这样做的目的是为了达到编程上的方便以及运营操作的灵活性。通过 eBay 的 O/R 层实现了对数据库的虚拟化。这样应用程序开发者无需关注数据存在哪里的。
Cache
其中提到了 Cache 的应用场景:针对缓慢改变的数据、只读为主的数据、元数据、配置信息和静态数据等。 把握这个原则是很关键的。我个人就看到有病急乱投医的设计者把数据一股脑的扔进 Cache,潜在的麻烦很难消除。
强烈推荐大家直接点过去看一下该文。
补充:关于 BASE。
B
asically
A
vailble
S
oft-state
E
ventual Consistency
--EOF
--
原文:http://www.dbanotes.net/arch/ebay_scalability.html
分享到:
相关推荐
Scalability的实践经验包括: * People and Process:Scalability需要考虑人和流程的因素,确保系统的设计和实现考虑到人和流程的限制。 * Culture of Scalability:Scalability需要建立一个具有Scalability文化的...
复杂度的增加和代码库的膨胀对eBay的架构提出了更高要求,因此,eBay正在积极探索新的方法和技术,如微服务架构、DevOps实践、自动化测试和部署流程优化等,以实现更快的时间至市场(Time-to-Market)目标,同时维持...
Each optimization discusses techniques to improve the performance and scalability of your code. Every claim is substantiated with hard numbers and an experience-based evaluation. Java(TM) Performance...
- 延迟与吞吐量:平衡延迟时间和系统处理能力之间的关系,以实现最佳用户体验。 - 可用性与一致性:布鲁尔的CAP定理指出,在分布式系统中,只能同时满足一致性(Consistency)、可用性(Availability)和分区容忍性...
Improving .NET Application Performance and Scalability provides an approach to engineering applications for performance and scalability.
《Nutanix超融合Oracle数据库平台最佳架构实践》是针对在Nutanix平台上部署Oracle数据库的解决方案指南。该文档旨在提供一套最佳实践,帮助IT专业人员优化性能、提升可用性和简化管理,以实现高效且可靠的Oracle...
Java Performance and Scalability Volume 1
### 开发高性能J2EE应用最佳实践 随着技术的发展与硬件性能的提升,开发高性能的应用程序已成为企业级软件开发中的重要课题。本文将基于提供的文件摘要,深入探讨如何开发高性能的J2EE(Java 2 Platform, ...
- 这些技术的应用需要根据具体的业务场景进行选择,以便达到最佳的性能效果。 ##### 4. **非技术因素的影响** - 可扩展性不仅仅是技术问题,还包括了团队合作、沟通效率等因素。 - 本书提到了如何通过建立有效的...
Designing for Scalability with Erlang-OTP.pdf Designing for Scalability with Erlang-OTP.pdf Designing for Scalability with Erlang-OTP.pdf
Tableau服务器的可扩展性(Scalability)是指该服务器系统在面对不断增长的用户负载和数据量时,依然能够维持性能和稳定性,且能够通过增加硬件资源来按比例提升服务能力的特性。在本白皮书《Tableau服务器可扩展性...
Scalability Rules Principles for Scaling Web Sites(2nd) 英文epub 第2版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
两位作者在书中详细描述了他们的模型和最佳实践方法,这在其他书籍中是找不到的。第二版的书籍增添了新内容和更新,例如关于敏捷架构的新章节以及新的案例研究,为读者提供更广泛的现实世界挑战的解决方案,包括性能...
### 开发者最佳实践日——高可用和可伸缩架构详解 #### 一、高可用的概念与实现 ##### 1.1 高可用定义 在IT领域,“高可用”(High Availability, HA)通常指的是系统在面对单点故障时能够维持正常运行的能力。...
Advanced Computer Architecture - Parallelism, Scalability, and Programmability 高级计算机体系结构
在当前的数字化转型和云原生应用的浪潮中,系统的可扩展性(Scalability)是架构设计中的一个核心问题。它关乎到系统能否在用户量、数据量等增长的情况下,仍能保持良好的性能和稳定性。然而,在追求可扩展性的过程...
1. **高可扩展性(Scalability)**:根据数据的增长,企业可以增加Informix Cluster节点来提高数据库的处理能力。这通常是通过“scale-up”或“scale-out”策略来实现,即在现有的硬件上增加资源(scale-up)或者...