随着企业数据库中数据量的增长和对数据库访问量的增加,对数据库进行分库分表及读写分离的需求就越来越突出。而要对业务数据库进行分库分表或是读写分离操作,最简单的方法是在数据库和业务应用之间增加一个数据库中间层。那么数据库中间层有什么做用呢?我们可以利用数据库中间层来实现对业务数据库分库分表及读写分离的逻辑。这样做的好处是可以把所有逻辑全集中在一起进行处理,而不用对业务程序进行修改,只是把原来由业务程序直接访问数据库的方式,改成通过数据库中间层来对数据库进行访问就可以了。
由于在数据库中间层中需要实现所有的分库分表和读写分离逻辑,所以如果想要开发一套数据库中间层应用的话,往往来说是十分负载的,而对于大多数中小企业来说,很难有能力来完且自己开发一套数据库中间层,这时我们就可以选择现有的数据库中间层产品来应用到咱们的架构中。
当前可选的数据库中间层系统非常的多,之前在MySQL实战课程中就讲解过oneproxy和maxscale两种数据库中间层的使用方式,还有这次最新的实战课程中所讲的MyCAT,都是非常好的数据库中间层系统。当然除了这些,还有很多其它的数据库中间层系统,那为什么我们这次以MyCAT为主题专门推出了一门实战课程呢?
主要是MyCAT和其它的数据库中间层相比,有很多其它中间层所不具备的优势。
首先,MyCAT是基于阿里的Cobar系统开发的,经历过大数据量高并发下的业务环境的考验。
其次,MyCAT是使用JAVA语言进行开发,完全开源,我们可以按我们的业务需要来自由的定制开发符合我们业务需要的中间层应用,这要比我们从零开始自己来发要方便很多。
最后,除了可以通过MyCAT来连接MySQL数据库外,我们还可以使用MyCAT来访问像Oracle,SQLServer,PgSQL这样的关系型数据库,以及像MongoDB这样的非关系型数据库,这也是其它数据库中间层产品所不具有的优势。
基于以上几点我们选择了MyCAT做为这次数据库中间层实战课程的主要内容,如果大家对MyCAT的有兴趣,或是你的业务环境正需要进行分库分表或是读写分离这样的架构调整的话,不访来参考一下这门课程的内容。