国内互联网公司数据库访问层调查

中间层

在WEB开发中,数据库的数据读写和传输一向是瓶颈,在此基础上的解决方案基本都是数据库连接层的设计,一个公司数据库连接层的牛B与否可以标识这个公司的全局规划的“工艺水平”到达一个什么样了。下面的内容来自明查暗访,决无BS之意,旨在提供给需要统一规划整体架构的架构师一个帮助。

54chen声明:本文所有内容本着技术分享的原则,收集资料皆来自网络,绝不透露不该透露的内容,绝不隐藏不该隐藏的内容(阿弥托佛,)。
1.人人网 参考:http://ugc.renren.com/2009/12/28/renren-ice-problem/
关键词:ice中间层,统一配置数据源,开发者不关心分库分表

与很多大型的网站一样,人人网的系统全部是由开源软件构建的。使用Nginx做前端接入,resin做容器,Memcached做通用 cache,MySQL做数据库,使用Linux作系统。
除了上述的部分外,人人网还有一个与众不同的中间层。中间层以服务的形式存在,位于MySQL和resin中间,提供高并发低成本的数据访问层。

2.百度 参考:http://wenku.baidu.com/view/9daa2b8102d276a200292e9c.html
关键词:dbproxy,服务器都是flash卡,DBA与开发者都不关心分裤分表(半自动)
百度的dbproxy利器,将mysql的管理半自动化,HA等功能一应俱全,再加上SSD等硬件支持,性能相当不一般。

3.盛大-技术保障中心 参考:网友
关键词:无中间件,每个系统一个数据库,开发者严重关心分库分表

4.新浪 参考:网友
关键词:无中间件 分表要开发者自己做

5.金山 参考:网友
关键词:无中间件 分表要开发者自己做

6.腾讯 参考:腾讯大讲堂45-解剖TTC
关键词:Tencent Table Cache
TTC是提供高速数据访问服务的通用cache server。特点是采用epoll和异步状态机模式提高并发能力。TTC看上去是一个数据库缓冲层,由于资料有限,只能如此分析。
--感谢胖子和呵呵哥提供线索支持

7.淘宝、支付宝 参考:http://wenku.baidu.com/view/f36d620c844769eae009edba.html
关键词:JBoss作为中间件,有数据路由层,数据库 Oracle 与 MySQL
在网络上许多文档里都有提到阿里内部是有一数据路由层的,另外JBoss的使用也使得他们轻便不少(可惜当年哥在淘宝时只搞的是搜索,不使用DB)
--感谢Fenng提供线索支持

8.阿里巴巴B2B 自己实现了db proxy,自定义分库及路由规则,有client版也有server版;分布式数据库原型
--感谢Brave提供线索支持

调查中采访了许多人,比较遗憾的是腾讯的布道者 太少,基本上只有一个呵呵哥可以问,可他工作中还没有用到数据库,在此特进行BS。


原创文章如转载,请注明:转载自五四陈科学院[http://www.54chen.com]

捐款订阅54chen
捐赠说明