大型系统设计第1课--可扩展的数据库层架构设计 PDF分享
《手把手,教你编写1个可以并行运行在5台数据库上的留言板》
前言:对于大规模系统而言,最复杂,往往也是最大的性能瓶颈,主要都产生在数据层。对于大型系统数据层的设计,主要包括缓存系统和数据库的可扩展性两方面。缓存系统比较简单,网上讨论的也比较多,方案也相对成熟,一般来说只要部署一大堆memcached之类的缓存服务器就可以解决了,扩展性也好;但对于可扩展的数据库层架构设计,通用方案较少,网上资料更是寥寥无几。
这也有情可原,现在的主流通用数据库框架,如hibernate和ibatis基本上都只支持1个系统运行在1台数据库上。对应的,基于这些框架的系统,也基本上只能运行在单台数据库上了,框架对数据库扩展性的支持几乎没有,开发者也只能被迫接受。
这篇文档,主要补充“重要”却被主流遗失的“数据库层可扩展”架构设计,让你的系统在“需要”时,可以随时通过增加机器就能最简单的解决数据库的性能瓶颈。