从数据库的发展历程来看,大约有5年了吧,5年前,单库单表已经不能满足海量数据的出现,计算,存储,频繁出现了很多新技术
1、NoSQL
当时的代表之一,其中的代表作有redis,mongodb,es等等,已牺牲一部分功能为代价,提供一种海量数据的计算、存储的解决方案,在当时是相当火热
但是随着时间的推移,劣势也逐渐显示出来,标注SQL仍然是解决问题的基本手段之一,各种NoSQL的限制和不足问题,已经成为了使用时考虑的很重要的一环
2、大数据
大数据我如果没有记错的话,也是大约那个时候兴起的,因为单库性能瓶颈等情况,必须做出相应的改变,大数据应运而生。因此,出现了两个专有名词,OLAP,OLTP,分别代表大数据的使用场景和普通的使用场景,其中的处理逻辑,擅长的领域各有区分
3、分库分表中间件
举几个简单的例子吧
3.1、单独部署的分库分表中间件,代表作,mycat。在当时那是相当的火热啊,这个我没有仔细研究过,只是用过罢了,该中间件部署在应用和物理数据库之间,提供分库分表服务
3.2、如db-sharding这样的JDBC中间件,代表作,td-sharding,好像是这个名字,阿里的
3.3、将中间件和物理库合并在一起,可以动态扩容的数据库,代表作:oceanbase,这个要晚于前两种技术,这个技术不是银弹,对于分布式事务的稳定性和需要的性能开销一直是个未解决的难题,还有就是必须有分库键;好处在于,如果事务比较简单,确认是单库的话,那么基本上不用考虑日后扩容而带来的运维工作量(前两种的扩容运维工作量蛮大的)
4、NewSQL
这是一个概念都比较晚出现的,理论上来说,可以替换现有的数据库,并且提供动态扩容的数据库服务,目前的代表作有,tidb,小强db
它是一个全新的技术,我们上面说的,oceanBase,其实是基于现有技术的改造,核心基本没怎么动,而这个技术,改了核心,一般的实现方案是分为两个主要层,计算层和存储层,存储层使用nosql存储,再通过分布式一致性协议来保持完全一致,计算层则是天然分布式,同时也需要辅助层,监控等内容
从目前的趋势来由,有统一市场的潜力,但是目前仍然不是主流
5、raft paxos
讲到了这里,我们再说下分布式一致性算法(协议),这些都是有论文为依据,有完整的逻辑作为支撑,实现多个节点有序状态图的同步逻辑,为分布式服务提供稳定的基础
下一步我将重点介绍下分库分表实现方案上的内容,其他的有兴趣的可以自己去看
本文回顾了数据库发展历程,从NoSQL、大数据到NewSQL的兴起,探讨了分库分表中间件、分布式一致性算法等技术如何应对海量数据挑战。重点介绍了NoSQL、大数据、分库分表中间件、NewSQL及分布式一致性算法的代表技术和应用场景。
888

被折叠的 条评论
为什么被折叠?



