越来越多公司选择在线上业务使用数据库中间件,中间件最大程度的简化了业务层面的内容,同时也方便dba进行运维。市面上可选的开源数据库中间件有不少,这里介绍几个比较有名、或者是大公司开源的项目。

Cobar

案例开源的数据库中间件,主要用于代理mysql请求。 https://raw.githubusercontent.com/alibaba/cobar/master/doc/Cobar_architecture.png

github地址

https://github.com/alibaba/cobar

mycat

mycat基于阿里开源的Cobar,在其之上做了大量的改进。具体改进点可以参考http://www.mycat.io/。

http://www.mycat.io/index_files/arc.png

github地址

https://github.com/MyCATApache/Mycat-Server

kingshard

kingshard是个人开发者开发的数据库中间件,也是用来代理mysql请求的。 https://camo.githubusercontent.com/4ddda8c0cccd91d85f440819b042582c7013b29d/687474703a2f2f7777332e73696e61696d672e636e2f6c617267652f3665353730356135677731657632373030307276766a3230716f306b306467682e6a7067 https://camo.githubusercontent.com/f6498f3e325d1d8cfc8a8b1b3dcc46ab3ee8050a/687474703a2f2f7777342e73696e61696d672e636e2f6c617267652f3665353730356135677731657632367a68796d6c336a3230716f306b306467722e6a7067

github地址

https://github.com/flike/kingshard

incubator-shardingsphere

incubator-shardingsphere是apache的一个开源项目。它同时支持jdbc、proxy和sidecar三个模式。当使用jdbc模式的时候支持多种数据库,使用proxy的时候支持mysql。

github地址

https://github.com/apache/incubator-shardingsphere

Gaea

Gaea是小米开源的一个数据库中间件,用来代理mysql请求。分库分表方案兼容了mycat和kingshard两个项目的路由方式。 https://github.com/XiaoMi/Gaea/raw/master/docs/assets/architecture.png https://github.com/XiaoMi/Gaea

github地址

https://github.com/XiaoMi/Gaea

Atlas

Atlas是360开源的一个数据库中间件,用来代理mysql请求。 https://camo.githubusercontent.com/a0b50dc31f709ffbfa6c875a7e69569bff7bb686/687474703a2f2f7777342e73696e61696d672e636e2f6d773639302f36653537303561356a7731656d65337577637637336a3230396c30396c676c702e6a7067

github地址

https://github.com/Qihoo360/Atlas

TDDL

Sharding-JDBC

TSharding