分布式数据库

目录:

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.连接数据库

4.设置分片(数据库的分表分库操作):在amoeba中,是通过对conf文件夹中rule.xml文件进行配置实现的。

Original: https://www.cnblogs.com/xiuercui/p/13428414.html
Author: 程序界第一佳丽
Title: 分布式数据库

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/577549/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • redis持久化

    本次主要是对redis中著名的持久化策略进行代码层面描述,主要包括RDB持久化和AOF持久化 因为AOF文件的更新频率比RDB高,所以如果服务器开启AOF持久化,redis优先使用…

    Linux 2023年6月13日
    0122
  • 前端Web实训项目-教务系统成绩查询

    通过暑期前半个月实训,我们选的方向是Web前端(虽然我想选Java全栈的),所以我们最终确立的主题是做一个网页。 这个项目是我们组四个人做的,因为技术水品都不咋样,所以有很多地方需…

    Linux 2023年6月7日
    0118
  • 剑指offer计划18( 搜索与回溯算法中等)—java

    1.1、题目1 剑指 Offer 55 – II. 平衡二叉树 1.2、解法 递归和下一面一题的结合版,abs去绝对值判断两边的差,然后递归isBalanced来遍历二…

    Linux 2023年6月11日
    064
  • k8s 用pod 创建的prometheus ,虚拟机断电关机,导致普米无法起来,报错Opening storage failed unexpected end of JSON input

    虚拟机重新启动后,查看Prometheus 查看容器日志 这个问题出现的原因是因为断电关机,导致Prometheus 数据损坏,无法启动,因为我这个Prometheus 是测试使用…

    Linux 2023年6月14日
    080
  • cobbler

    cobbler 1. cobbler简介 2. cobbler服务端部署 cobbler简介 Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速…

    Linux 2023年6月7日
    081
  • 七种方案!探讨Redis分布式锁的正确使用姿势

    日常开发中,秒杀下单、抢红包等等业务场景,都需要用到分布式锁。而Redis非常适合作为分布式锁使用。本文将分七个方案展开,跟大家探讨Redis分布式锁的正确使用方式。如果有不正确的…

    Linux 2023年5月28日
    088
  • SpringBoot学习笔记——Redis Template

    Springboot可以通过redis template和redis进行交互,使用方法如下 可以参考这个系列的文章: 【快学springboot】11.整合redis实现sessi…

    Linux 2023年5月28日
    0102
  • zookeeper与kafka集群部署实现

    安装java依赖环境 配置zookeeper 启动zookeeper 检查状态 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。该项目的目…

    Linux 2023年6月7日
    0192
  • 【Linux】socket通信编程

    socket通信 * – socket简介 – socket操作API函数 – 代码实现 socket简介 网络层的”ip地址&#8…

    Linux 2023年6月13日
    094
  • shell编程-杨辉三角简单实现

    shell编程-杨辉三角问题: 概述:中国古代数学家在数学的许多重要领域中处于遥遥领先的地位。中国古代数学史曾经有自己光辉灿烂的篇章,而杨辉三角的发现就是十分精彩的一页。杨辉三角形…

    Linux 2023年6月7日
    0109
  • 【MQTT】使用MQTT.fx上报温度到腾讯云

    打开 腾讯云官网, 注册并登录. 2.登录之后点击右上角的控制台点进去 3.在搜索框[物联网通信],点击进入 4.点击创建新产品 5.选择普通产品,名称随便,选择密钥认证,选择js…

    Linux 2023年6月13日
    097
  • 简单的kubernetes搭建

    一、基本环境: Centos7.X Docker Version: 1.13.1 二、kubernetes各组件介绍: etcd保存了整个集群的状态 kube-proxy负责为Se…

    Linux 2023年6月13日
    080
  • ELK收集日志之logstash使用

    一、logstash使用 1.logstah收集文件日志 不难理解,我们的日志通常都是在日志文件中存储的,所以,当我们在使用INPUT插件时,收集日志,需要使用file模块,从文件…

    Linux 2023年6月14日
    0114
  • Shell脚本编程中的几个问题

    条件语句 正确的写法: if [ $1 = "-f" ] #注意这里,前后方括号和中间的内容之间必须有空格! then commands fi 错误的写法: i…

    Linux 2023年6月14日
    081
  • Xshell中文乱码问题

    先查看当前使用的语言: echo $LANG 查看系统的语言安装包: locale 如果没有中文安装包(包含zh_CN字样),需要网络或者自己上传安装包,安装 有了中文语言安装包后…

    Linux 2023年5月28日
    097
  • Redis 常用五种数据类型编码

    1.String 1.1 常用命令 (1)设置值 set key value [ex seconds] [px milliseconds] [nx|xx] set命令有几个选项: …

    Linux 2023年5月28日
    098
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球