- 分布式数据库和集中式数据库的差异
传统集中式数据库:
集中式数据库:oracle IBM DB2
优势:
成熟稳定
适配不同行业
生态完善:有大量应用商和技术开发者
劣势:
成本高:软件售价高,同时依托高端硬件
无法横向扩展:容量提升只能提升设备自身的性能
- 数据库中间件分库分表:
优势:
线性扩展
技术成本低
劣势:
跨库分布式事务:数据库之间不知道其他数据库的存在,只能通过中间件完成跨库事务,难以做到RPO=0(数据0丢失)
全局一致性:多个数据库服务器时间戳不一致,很难保证多库之间数据版本号全局一致
负载均衡:扩容和锁容时,无法在线调整数据分布,对业务和运维挑战很大
跨库复杂sql:跨库的复杂sql运算只能在中间件完成,中间件不具备分布式并行计算能力,最终限制应用对sql的使用,产生业务侵入性
- 原生分布式关系型架构
1.数据高可靠+服务高可用:多副本一致性协议Paxos的工业级实现,个别节点发生故障时保证数据0丢失(RPO=0)和(自动选举恢复服务)服务快速回复(RTO<30)(恢复时间在30秒以内)
2.线性扩容:随着业务量增加减少进行扩容和缩容
3.低成本:普通x86服务器也能保证高可用性
4.全局一致性:支持分布式事务,支持分布式复杂查询
5.灵活的步数方式:支持三中心,五中心,主备等多种步数模式
6.对业务透明:可用像使用单点数据库一样使用分布式数据库,业务迁移改造成本低
小结
1:传统数据库往往对硬件基础设施有较高要求,同时只能纵向扩展,无法横向扩展,容易达到性能上限;
2:分库分表虽然可以横向扩展了,但也有带来了不支持复杂SQL、较难保证分布式事务的ACID等新问题;
3:分布式数据库可以有效解决这些问题,应用可以像使用集中式数据库一样使用分布式数据库,分布式数据库具
有低硬件成本、高可扩展性、高可用性等特性。