我的编程空间,编程开发者的网络收藏夹
学习永远不晚

数据库也去中心化?深度解析分布式数据库

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

数据库也去中心化?深度解析分布式数据库

在云计算、大数据等新技术的带动下,越来越多的企业需要对结构化的数据进行查询、分析、处理和更新。同时,随着创新业务的不断增加,业务的复杂及庞大的体量必然会产生错综复杂且规模巨大的结构化数据,这些都必然迫使企业对数据库的需求指向大规模、高可靠、高扩展及高性能。

对任何企业而言,数据库都是其应用的核心资源,如何选择适合自身企业 IT 架构及业务的核心数据库是每一个 CIO/CTO 必须面对的问题。

本文将从互联网企业及传统行业(银行、保险等行业)两个部分来具体分析和阐述,希望对大家有所帮助。?

互联网公司的主流是 MySQL

开源数据库MySQL ,由于其自身特点和互联网使用场景,在互联网界非常受欢迎,有着极为广泛的应用。

互联网公司往往有高并发、大数据量等业务特点,同时为了在激烈的竞争中占得先机,产品会不断迭代,需要不断推出新产品,并做大量的促销运营活动,这些从技术角度来看是没有办法提前预知的,只能寄希望于 IT 的伸缩能力,所以互联网公司对于系统的伸缩能力都有着执着的追求。

MySQL 之所以在互联网圈子广受欢迎,可以简单归纳为以下几点:

  • MySQL 虽然是开源软件,但是简单易用、具备极高的稳定性、功能也比较完善,且可以根据业务特点定制所需的存储引擎,进行性能优化,从而适应自身业务。很多商用的数据库软件设计目标并没有考虑互联网业务经常面临的高并发、海量用户场景,无法满足企业的基本需求。

  • 由于 MySQL 代码完全开源,当企业的业务出现任何问题时,可以第一时间进行排查和响应,从而保证用户体验。而商用数据库软件的核心技术用户无法深度掌握,很难有足够快速的问题解决能力。

  • 将 MySQL 运行在标准的 X86 服务器上,硬件费用大大降低,同时也可以节省一大笔 License 费用。

MySQL 虽然有种种优势,但 MySQL 也不是万能的,一个复杂 SQL 或者大表 Join 就可能使 MySQL 负载过重,资源耗尽。同时 MySQL 自身也有一个很严重的缺点:没有一个成熟的高可用和分布式解决方案。

所以,大多数互联网公司的选择都是混合使用,当 MySQL 能解决问题时就用 MySQL,而一些对性能、安全性、可靠性要求更高的业务则使用商用数据库软件,然后再看有没有机会去替换。

金融行业

金融行业绝大多数系统的数据存储层都采用“小型机+商用数据库+高端存储阵列”的实现方式,随着业务和技术的发展,这种方式逐渐暴露出一些问题。

  • 安全可控需求,监管机构从国家信息安全高度对银行业的 IT 基础设施提出了开源化、国产化、安全可控的要求。

  • 银行业面临着日趋严峻的 IT 成本控制压力,而基于现行数据存储层的实现方式,每个系统的数据存储成本都以数百万计。

  • 随着电子银行、网上银行业务的创新、拓展,数据存储层缺乏良好的可扩展性,难以应对应用层的高并发数据访问。

  • 过去银行采用高端的设备,比如使用小型机和大型存储来保证数据库的可用性。在扩展性方面,主要通过增加 CPU、内存、磁盘等方式提高处理能力。这种集中式架构,使得数据库逐渐成为整体系统的瓶颈,越来越不适应海量数据对计算能力的巨大需求。

金融行业普遍面临互联网金融在技术和业务上带来的新挑战,高可用、高可靠、可扩展的大数据平台和分布式数据库解决方案是金融行业的全新技术选择,不但有利于金融行业提升业务创新能力和用户体验,同时增强了自身的技术储备,以迎接互联网时代的市场挑战。

因此,对于银行业来说,以「分布式数据库 + Hadoop 大数据平台」解决方案来逐步替代现有关系型数据库成为最佳选择。

新一代分布式关系型数据库应运而生

分布式数据库是这些大型企业用户(如电商、金融、制造、零售等)承载核心业务的重要技术选型方向之一,是帮助企业处理大规模结构化数据的重要技术平台。为满足用户对分布式数据库的实际需求,同时帮助传统企业将核心业务逐步向云端迁移,青云QingCloud 自主研发了新一代分布式数据库。

青云的分布式关系型数据库 —— RadonDB

青云QingCloud RadonDB 是基于 MySQL 研发的新一代分布式关系型数据库,规模可无限水平扩展,支持分布式事务,具备金融级数据强一致性,满足企业级核心数据库对大容量、高并发、高可靠及高可用的苛刻要求。

数据库也去中心化?深度解析分布式数据库

RadonDB 架构图

如上图所示,RadonDB 采用分布式 SQL 节点 + 分布式存储节点的高可用分布式架构,每个分区内采用一主多从的架构设计,数据多副本存储,可自动实现故障秒级切换与瞬间生效。同时支持跨数据中心部署,全面保障服务高可用。

数据库也去中心化?深度解析分布式数据库

存储层由多个 Node 组成,每个 Node 负责部分数据存储,同时在存储节点内,通过 GTID + Raft + Semi-Sync-Replication 机制保障数据写入的高度一致性。 底层硬件一般采用低成本的 X86 架构存储服务器。

同时,存储层采用一主多从的 MySQL 作为存储引擎,这点与行业内其他的分布式数据库不同(Google Spanner)。 之所以选择经典的 MySQL 作为存储引擎,主要有以下几点原因:

  • MySQL 使用广泛,其可靠性和稳定性经过长期验证;

  • 用户的 MySQL 数据库不需要进行太多修改,即可迁移至 RadonDB;

  • MySQL 不断的演进,功能日益完善,如支持计算下推,数据就近计算原则;多索引写原子保证;SQL 与 Storage 层数据传输最小化等等。

数据库也去中心化?深度解析分布式数据库

如上图所示,分布式数据库系统中的数据是相互关联的,虽然每个小表(子表)都是分散的,但逻辑上是一个统一的整体,对上层应用来说,可视为一个集中式的数据库系统。

数据库也去中心化?深度解析分布式数据库

同时,小表(子表)可以动态漂移,随着表的热度和大小进行动态的扩容和伸缩,保证资源分配最优化。支持存储节点无限水平扩展,从而提供可动态无限扩展的存储容量。性能随节点扩展而线性增长,轻松应对超大容量及超高并发请求带来的性能挑战。

除上述基本特征外,RadonDB 还高度兼容 MySQL 语法,支持 HTAP 混合模式,可跨数据中心部署,支持智能化自动分表、平滑扩容及自动运维,扩容与故障切换时业务零中断,无需人工干预;同时支持 HTAP 混合模式,并提供完善的服务监控、审计日志及安全防护措施。

作为一款基于云模式的大型分布式数据库服务,RadonDB 具备云服务所有的弹性、敏捷、按需和轻运维特性。

写在最后

希望 RadonDB 数据库可以给行业从业者带来更多的可能,包括金融行业新业务、新 IT 的建设,互联网公司核心业务的高可靠、高性能等诉求。

未来,RadonDB 将会全部开源,希望可以有更多的伙伴加入进来,给行业带来更多的惊喜。如果你对分布式数据库还有更多问题,12月12日,我们将会有一场线上发布会,RadonDB 的研发工程师会与大家面对面进行交流,千万不要错过。

青云QingCloud 下一代企业级云架构 ——「全模云」线上发布会,期待你的报名。

http://t.cn/RYAz05V


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

数据库也去中心化?深度解析分布式数据库

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

数据库也去中心化?深度解析分布式数据库

在云计算、大数据等新技术的带动下,越来越多的企业需要对结构化的数据进行查询、分析、处理和更新。同时,随着创新业务的不断增加,业务的复杂及庞大的体量必然会产生错综复杂且规模巨大的结构化数据,这些都必然迫使企业对数据库的需求指向大规模、高可靠、
2023-06-04

Oracle数据库中的分布式数据库是什么

在Oracle数据库中,分布式数据库是指在不同物理位置上的多个数据库实例能够通过网络连接相互通信和协作的系统。分布式数据库可以让用户在不同的地理位置上访问和操作数据,同时也能提高数据的可用性、可靠性和性能。Oracle数据库中的分布式数据
Oracle数据库中的分布式数据库是什么
2024-03-02

Redis数据库分布式的示例分析

这篇文章给大家分享的是有关Redis数据库分布式的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。问题:1-2亿数据需要缓存,如何设计?1 哈希取余分区2亿条记录就是2亿个k,v,假设有3台机器构成一个集群
2023-06-28

深度解析阿里云ECS数据库IO

随着云计算技术的发展,阿里云ECS数据库已经成为企业级应用的重要组成部分。然而,数据库IO性能的问题一直是困扰企业用户的一大难题。本文将深入解析阿里云ECS数据库IO,为企业用户提供参考和指导。正文:一、什么是数据库IO?数据库IO是指数据库在执行各种操作时,需要从磁盘上读取或写入数据的过程。在这个过程中,数据的
深度解析阿里云ECS数据库IO
2023-10-31

阿里云与数据库一个深度分析

阿里云是中国最大的云计算服务提供商之一,也是全球领先的云计算服务提供商之一。本文将深入探讨阿里云与数据库的关系,并详细阐述两者如何携手合作,为客户提供更优质的服务。阿里云与数据库:一个深度分析随着云计算的发展,数据库的重要性越来越突出。数据库是数据存储和管理的核心,对于企业来说,数据库的选择直接影响到数据的安全性
阿里云与数据库一个深度分析
2023-11-22

Thinkphp分布式数据库连接代码分析

Thinkphp作为国内的一款流行框架,相信使用的人一定不在少数。本篇我们来分析一下Thinkphp中比较重要的一部分——分布式数据库的连接。当然了,我们在这里不是去将如何使用模型去对数据库进行增删改查。我们是对其底
Thinkphp分布式数据库连接代码分析
2024-02-27

阿里云数据库的结构深度解析

阿里云数据库是阿里巴巴集团提供的一种数据库服务。它采用了云计算技术,为用户提供强大的数据库处理能力。本文将详细解析阿里云数据库的结构。一、什么是阿里云数据库阿里云数据库是阿里云提供的一种云数据库服务,它基于云计算技术,提供了高性能、高可用、高安全的数据存储和管理服务。用户可以根据需要在云上创建、管理、部署数据库,
阿里云数据库的结构深度解析
2023-12-18

怎么浅析Facebook对MySQL数据库的深度优化

这期内容当中小编将会给大家带来有关怎么浅析Facebook对MySQL数据库的深度优化,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Facebook拥有世界上最大的MySQL数据库集群,其中包含了成千上万
2023-06-10

流量和延迟减半!挑战分布式数据库 TiDB 跨数据中心难题

众所周知,在对可用性要求极高的行业领域(比如金融、通信),分布式数据库需要跨地域的在多个数据中心之间建立容灾以及多活的系统架构,同时需要保持数据完整可用。但这种方式同时也带来了一些问题:跨地域的网络延迟非常高,通常在几十毫秒左右,洲际间更能达到几百毫秒。跨地域
流量和延迟减半!挑战分布式数据库 TiDB 跨数据中心难题
2017-01-21

分布式系统中 Golang 函数与分布式数据库的交互

在分布式系统中,go 函数可以与分布式数据库交互。具体步骤如下:安装必要依赖项。使用 spanner.newclient 函数连接到数据库。使用 query 方法执行查询,并获取迭代器。使用 do 方法遍历查询结果并处理数据。查询完成后,使
分布式系统中 Golang 函数与分布式数据库的交互
2024-04-19

iterate在分布式数据库中的应用

在分布式数据库中,“iterate”(迭代)是一个重要的概念,它通常指的是遍历或查询数据库中的数据项的过程。由于分布式数据库由多个节点组成,每个节点可能存储数据的一部分,因此迭代在分布式数据库中通常涉及跨多个节点的查询和数据处理。以下是迭
iterate在分布式数据库中的应用
2024-09-22

MySQL百万数据深度分页优化思路解析

目录业务场景瓶颈再现问题分析回表覆盖索引IOLIMTI 2000,10 ?问题总结解决方案优化前后性能对比业务场景一般在项目开发中会有很多的统计数据需要进行编程上报分析,一般在分析过后会在后台展示出来给运营和javascript产品进行分
2023-05-12

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录