可以把上层看作是对下层的抽象,例如 *** 作系统是对各类计算机硬件的抽象。那么我们什么时候需要抽象?假如只有一种硬件的时候,我们需要开发一个 *** 作系统吗?
再比如一个项目只需要一个人完成的时候不需要leader,但是当需要几十人完成时,就应该有一个管理者,发挥沟通协调等作用,而这个管理者对于他的上层来说就是对项目组的抽象。
同样的,当我们的应用只需要一台数据库服务器的时候我们并不需要Mycat,而如果你需要分库甚至分表,这时候应用要面对很多个数据库的时候,这个时候就需要对数据库层做一个抽象,来管理这些数据库,而最上面的应用只需要面对一个数据库层的抽象或者说数据库中间件就好了,这就是Mycat的核心作用。
所以可以这样理解:数据库是对底层存储文件的抽象,而Mycat是对数据库的抽象。
根据业务场景来选择,二者优点:1、MYSQL CLUSTER,这个是MYSQL的官方集群方案,直接在数据库级别支持ndb网络节点,自动分片,自动join,单机故障不影响集群;
2、MYCAT,这个是基于阿里巴巴的Cobar方案优化而来,其支持团队也挺卖力的,支持半自动化分片、join。为什么叫“半自动化”呢?因为需要DBA对每个表的分片策略进行配置和干涉。个人感觉没有方案1的傻瓜式分片简单。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)