一:常见框架
Sharding,tddl,mycat,mysql-proxy,atlas
二:分类
1.jdbc直连层:
sharding(当当跳槽到京东),tddl(淘宝): 部分开源...
2.proxy代理层:
mycat(开源社区),mysql-proxy(mysql官方),atlas 360(基于mysql-proxy)
对比: 代理层是需要走网络请求的,直连层相比代理层来讲性能有很明显的优势.我在这里是有个疑问的,直连层性能很明显是高于代理层的,那为啥代理层这些框架还有存在的意义呢?我专门查了一下,有一些项目都是不同语言写的,这个代理层是可以跨语言的.而sharding的跨语言还在孵化中.
总结(基于对比):
1.从大众的接受程度和学习难度等方面考虑我选出了sharding和mycat两个框架
2.如果项目涉及到跨平台(语言)选择mycat,sharding的跨平台并不成熟
3.如果想上手就能用,也选mycat,不需要自己写分片规则,直接连接mycat就可以使用,对开发人员的成本是非常低的(夸张点说,有手就行)
4.如果跨不同类型数据库,符合jdbc规范的sharding都是支持的.而mycat需要加插件
5.如果追求性能,技术能力过硬的话还是推荐sharding