
近期跟多家用户交流,发现用户在选型数据库时正有了一些新的变化,这也是近些年通过不断实践,用户总结的最佳实践方法。例如,有的用户不盲目追求分布式,而是通过业务单元化后,底层通过集中式数据库解决;有的用户选择分布式数据库,但在应用上通常是按照“单机”模式去使用,即不做数据分片;有的用户利用分布式数据库提供的租户特性,做单机数据库的整合;也有的用户回归“传统”的集中式共享存储架构来解决问题。上面谈到的租户及单机模式的使用方法,可以说是一种“伪分布式”。那么在面临这些“新架构、新用法”,用户又该如何选择呢?本文选择了分布式和集中式的多种主流用法,尝试从多种角度来对比分析下。
1).谈谈“伪分布式”
在正式对比之前,这里先谈下伪分布式的两种用法。第一种“单机”模式,其实是一种对分布式的妥协,放弃了分布式能力,选择单机式的使用方法。这种通常发生在用户已经选择使用分布式数据库,但其更多业务是不需要采用分布式使用方式,但选择另一款集中式数据库又需要引入新的技术栈,因而采用这种方式。这种方式优点在于一方面简化统一技术栈、第二则利用平台能力(如高可用、易管理等)做到比直接使用单机库更好的效果。这种方式多见于分库分表类型的分布式数据库,因其底层是依托于独立的单机数据库引擎构建,因而相对容易。另一种方式“租户”模式,则多见于资源整合类需求,用户将原来直接使用大量单机数据库,转而通过分布式数据库提供的租户来承载。其业务可采用分片、也可采用单机。这种方式优点在于同样一方面可以简化统一技术栈,第二则更多是为了更好的利用资源,通过租户的形式来整合底层资源。当然上述两种能力,也存在一定的弊端,主要表现在资源有效利用率(分布式架构多少存在一些冗余)、管理灵活性(统一方式管理所带来的)、可靠性(集群内的单点故障蔓延)、可用性(受限于平台整体可用性)、扩展性(是否能做到真正的一体化)等等。
2).多角度架构对比
下文将从多角度对比各种数据库主流架构。这其中选择原生分布式、分库分表类型的分布式,默认这两者都采用数据分片的通常用法;另外选择分布式的两种新用法,租户模式和单机模式。集中式方面,选择了典型的三种架构,共享存储模式(类似Oracle RAC)、主备模式(类似Oracle DG)和单机模式。

1).典型业务场景回顾
2).可适配的最佳架构






