用什么来衡量一天没有白过? 可能看到一篇好文章能算做一个条件。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
分享到:
相关推荐
eBay Architecture-Scalability with Agility
The Art of Scalability is by far the best book on scalability on the market today.
Scalability patterns
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...
Improving .NET Application Performance and Scalability provides an approach to engineering applications for performance and scalability.
What You’ll Learn Architect and develop applications so that they are easy to scale. ... Effectively balance scalability, performance, responsiveness, and availability while minimizing downtime.
架构即未来 现代企业可扩展的Web架构流程和组织 英文原版 第二版 The Art of Scalability 2nd.pdf
Java Performance and Scalability Volume 1
5 Scalability Poisons and 3 Cloud Scalability Antidotes
Scalability Rules Principles for Scaling Web Sites(2nd) 英文epub 第2版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
Advanced Computer Architecture - Parallelism, Scalability, and Programmability 高级计算机体系结构
whitepaper_tableauserverscalabilityexplained_1.pdf
Enhancing the Scalability of Memcached
Scalability and efficiency in multirelational
学习java性能调优的好书,国外专家写的,很不错
可扩展架构,《The Art of Scalability》中的三维伸缩性模型
注意是Programming Scala的第二版,而不是Programming in Scala的第二版,更注重于与Spark相关的知识!强烈推荐!Programming Scala- Scalability = Functional Programming + Objects, 2 edition
一篇讲述apache hdfs扩展性限制的文章