分布式数据库看起来很美好,提供了横向扩展性能的能力,高可用性看起来也大大增强了。但是相对技术比较新,而且是面向特定的场景,对前端应用要求比较多。所以在使用分布式数据库之前,一定要熟悉产品,制定好相关规范和基础设施。
近期在写个分布式的文章,参考的数据库如图中所示,我学习了下这些数据库的分布式技术原理,找了这些架构图,都是产品官网的,仅供参考。
我认为分布式数据库走过了从读写分离,中间件分表,分布式数据库集群这三个阶段。现在市面上分布式数据库集群的这种解决方案已经不少了,所以从纯主打分布式数据库集群的产品开始就行。
我们行里也测试了相关分布式数据库的性能,毕竟不同的场景效果不一样,也不便直接拿出数据。建议还是按照自己行里额业务测试测试效果。
最后谈谈自己的经验。首先分布式数据库对于基于业务分片后的单点事务性能都很好,性能上限一般都是在全局事务管理器这个组件上出现瓶颈,因此这部分做的好不好决定了一个分布式数据库产品的上限。其次是分布式事务的处理能力都比较差。这个是显而易见的,分布式数据库都这个特点,吹嘘的再好也是弱项。因此对于适合分布式场景的业务,一定要好好把关,不是所有的业务场景都适合分布式数据库。
现在的分布式数据库并不是脱胎于成熟商业数据库。银行用商业数据库这么多年,早就被娇生惯养了。数据库周边的衍生工具很匮乏,资料也少。遇到问题除了求助厂商也没什么其他途径。因此生态还需要很久才能养成。现在只能陪着成长。
这是项风险很高的工作,努力吧