分布式数据库
目录:
1.分布式数据库的核心功能
2.分布式数据库的优点
3.分布式数据库的缺点
4.市面上分布式数据库的产品分类
5.分布式数据库的搭建
随着互联网的发展,人类社会的数据量迅速激增,据统计目前人类一年产生的数据就相当于人类进入现代化以前所有历史的总和,而且互联网业务的发展通常具有爆发性,业务量很可能在短短的一个月内突然爆发式地增长几千倍,对应的数据也很可能快速地从原来的几百GB飞速上涨到了几百个TB。如果在这爆发的关键时刻,系统不稳定或无法访问,那么对于业务将会是毁灭性的打击。
之前,关系型数据库在过去数十年的数据库领域一直占据着绝对主导的地位,它所带来的稳定性、安全性和易用性,成为了构建现代化系统的基石。但是,现在的大数据时代,构架于单机系统的数据库已无法满足越来越高的并发请求和越来越大的数据存储需求,因此,分布式数据库被愈加广泛的采用。
一.分布式数据库的核心功能主要集中在:
- 分布式存储:数据存储不受单机磁盘容量限制,可通过增加数据服务器的数量提升存储能力
- 计算存储分离:计算节点无状态,可通过水平扩展增加算力。存储节点和计算节点能够分层优化
- 分布式事务:高性能、完全支持本地事务 ACID 原义的分布式事务处理引擎
- 弹性伸缩:可以随时随地的在不影响现有应用的情况下,动态对数据存储节点扩容和缩容
- 多数据副本:自动将数据以强一致、高性能的方式复制至跨机房的多个副本,以保证数据的绝对安全
- HTAP:采用同一套产品混合处理 OLTP 的事务型操作和 OLAP 的分析型操作
分布式数据库的实现方案可以划分为进取型和稳定型。进取型实现方案是指开发全新架构的 NewSQL。这类产品以追求更高性能换取稳定性的缺失和运维经验的不足;稳定型的实现方案是指在现有数据库的基础上提供增量能力的中间件。这类产品则以牺牲部分性能以保证数据库的稳定性和运维经验的复用。
二.分布式数据库的优点:
- 随时能针对各区域的用户做调整。
- 数据共享和分布式控制 。
- 增加处理绩效,可作平行处理。
- 系统管理费用较低。
- 质量维持容易。
三.分布式数据库的缺点:
- 重复存储数据很花时间。
- 数据处理与管理上具复杂度。
- 数据的保密性与安全性受到威胁。
四.市面上分布式数据库的产品分类:
1、物联网方向:时序数据库产品,满足IoT数据的收集、存储和统计。时序数据库产品也是现在对内存数据库产品冲击最大的。例如:InfluxDB、Kudu、kdb、OpenTSDB;
2、交易关系方向:替代传统交易关系型数据库产品Oracle/DB2等满足不了海量吞吐、海量并发、海量交易、海量存储的在线交易业务场景。例如:蚂蚁金服Oceanbase、腾讯TDSQL、热璞HotDB、中兴GoldenDB、开源MyCAT、开源Cobar。
3、分析关系方向:解决结构化数据存储和数据分析的业务场景,例如:Greenplum、Vertical、Gbase8a等。不过这块收到KV分析型产品巨大的冲击;
4、KV分析方向:Hadoop、Spark是当下的基石,国内国外较多公司都是在其基础上再做二次研发,尤其是实现兼容SQL标准语法,已迎合业务场景和研发人员。
5、KV文档方向:解决在线文档类型的非结构化数据存储和数据处理,例如:MongoDB、巨衫SequoiaDB,不过也都在拼命地在兼容SQL标准语法。
6、HTAP:交易分析混合型分布式数据库产品,从技术原理的角度而言这是没有理论创新支撑的方向,只是我们技术人员内心美好的愿望,例如:国内TiDB、国外Spanner/F1。
五.分布式数据库的搭建:
接下来准备使用中间件的架构,实现分布式数据库的构建。简单点说,调用者与中间件通信,有中间件与各个数据库通讯,完成基本数据操作,将结果返回给调用者。一个具有较好设计的分布式数据库,对于用户(调用者)来说透明,跟使用本地数据库一样。
下图为Amoeba+Mysql架构示意图
1.在虚拟机上构建Mysql server
2.连接数据库
3.配置Amoeba(中间件):https://www.iteye.com/blog/pengranxiang-1145342
4.设置分片(数据库的分表分库操作):在amoeba中,是通过对conf文件夹中rule.xml文件进行配置实现的。