Mycat 背后是阿里曾经开源的知名产品——Cobar。Cobar 的核心功能和优势是 MySQL 数据库分片,此产品曾经广为流传,据说最早的发起者对 Mysql 很精通,后来从阿里跳槽了,阿里随后开源的 Cobar,并维持到 2013 年年初,然后,就没有然后了。
Cobar 的思路和实现路径的确不错。基于 Java 开发的,实现了 MySQL 公开的二进制传输协议,巧妙地将自己伪装成一个 MySQL Server,目前市面上绝大多数 MySQL 客户端工具和应用都能兼容。比自己实现一个新的数据库协议要明智的多,因为生态环境在哪里摆着。
个人的感受来说,中间件是一个比较好的产品,但是业界成熟稳定的中间件又不多,这是一个主要的矛盾。在我看来 MySQL 的中间件主要就是一款 Mycat,DBLE 就是更好的 Mycat。给我们的选择很少,所以我觉得在中间件这块,MySQL 是存在“空白”的。① 互联网公司会使用 MySQL;② MySQL 会使用分布式。但推导不出 ③ 怎么去选择一个好的中间件产品。我们讲过 Router 是不支持分库分表的,这一块是缺失的。
如果你想在 MySQL 开发有所作为,我个人觉得中间件会比做 MySQL 内核更吃香一些。因为内核这件事情,已经没有多少空间了,官方能做的都做了。在中间件这一层是有需求的,而且需求是百花齐放的。每个公司需求都有差异,中间件直接拿来也不一定马上用得上,一定要业务 DBA 参与进来,深度整合才能用好。所以中间件层面的开发和使用,对个人成长是非常有价值的。相对单机来说,对业务方面你的价值会更大。