分布式一般分为三条技术路线: 分布式访问客户端、分布式中间件模式、分布式数据库模式。 其中分布式访问客户端对应用侵入性大,改造难度很高; 分布式中间件则类似MyCAT等产品,在数据库和应用间架一层Proxy,这种方案无法支持分布式事务、也无法支持跨库关联,分布式数据库方案则将分库分表等中间件实现的功能下推到数据库层面来做,对应用透明,应用就像使用单机数据库来使用分布式数据库,同时天然地支持分布式事务。
分布式数据库大致可以分为三类:
(1)支持持久化存储的分布式存储系统,如MySQL,OceanBase;
(2)偏向于计算的分布式计算框架,如Hadoop HDFS,Ceph,Swift,Blob,Cinder,Lustre;
(3)分布式消息队列,如Redis,RMQ,CMQ,Kafka。