聚焦大模型浪潮下软件工程的创新洞见与实践 |QCon主题演讲大咖来袭 了解详情
写点什么

DDM 的前世今生——浅析分布式数据库中间件

  • 2019-10-22
  • 本文字数:1204 字

    阅读完需:约 4 分钟

DDM的前世今生——浅析分布式数据库中间件

DDM 是什么?这是华为云 Paas 推出的分布式数据库中间件,DDM(Distributed Database Middleware)是一个实现了 Mysql 协议栈的服务器,前端用户可以把它看做一个数据库代理,用 Mysql 客户端工具和命令行访问,而 DDM 后端连接一到多个 Mysql Server。因此,DDM 本身并不存储数据,数据是在后端连接的 Mysql Server 上存储的。简单来说,DDM 就是 Mysql 的最佳伴侣,一定程度上让 Mysql 拥有了跟 Oracle PK 的能力。这样听起来 DDM 好像是 Mysql 的辅助大神,这里有必要对八卦下 DDM 发展背景,了解下 DDM 的前世历程。

NoSQL 与 SQL 之争

目前,互联网常有海量数据高并发和存储的场景,对于数据的存储,目前有基于 SQL (Structured Query Language)的关系型数据库和 NoSQL(Not Only SQL)的非关系型数据库。SQL 数据存在特定结构的表中;而 NoSQL 则更加灵活和可扩展,存储方式可以是 JSON 文档、哈希表或者其他方式,比如键值存储(redis,ROMA,Memcached)数据库应用在排行更新,会话保存,面向文档的数据库(mongoDB、couchDB)应用在日志记录,面向列的数据库(Cassandra、HBase)在博客中的应用。而且速度极高。


虽然在云计算时代,传统数据库存在着先天性的弊端,但是 NoSQL 数据库只能在特定场景下有奇效,只能作为传统数据的补充而不能将其替代。

关系型数据库性能瓶颈

目前绝大多数数据库不具备自动扩展,自动迁移的能力,对于单库单表性能瓶颈明显,当单表超过 1000W 数据量,性能会出现比较明显的下降。为了解决该难题,常见的做法就是进行分库分表来规避。


垂直分库:可按照业务模块进行划分,把数据分在不同的库中。



水平分库:我们发现某些表的数据量已经超过 1000W,QPS 显著下降,这里可以对这种表进行进一步水平拆分,做成多个分片表。大多数电商企业会按照日期分片,但又衍生出来一些问题,在固定时段中对某个分片压力很大,其他分片此时处于空闲状态,在电商企业高并发的场景下,会产生大量数据,此时又产生短时间内单库 QPS 瓶颈的问题。



拆分规则优化:可以根据拆分字段,进行取模的方式来做到数据大致平均分布到多个分片上。可以保证整体系统的 QPS 得到提升,但又衍生出来一些问题:分片数量不够需要扩容的问题,跨分片事务一致性无法保证的问题。

数据库中间件

为了减少对应用的侵入性,并且要将压力打在中间件上,该中间件负责和上层应用打交道,对应用可表现为一个独立的数据库,而屏蔽底层复杂的系统细节。分布式数据库中间件除了基本的分表分库功能,还可以丰富一下,比如讲读写分离或者水平扩容功能集成在一起,或者比如读写分离本身也可以作为一个独立的中间件。(DDM,Cobar,MyCAT, TDDL 等)。


上述提到的分片数量不够的扩容以及分布式事务一致性的问题,在华为云的 DDM 已经得到解决,并且中间件的功能在不断丰富,已经成为高并发应用的绝对利器。


本文转载自公众号中间件小哥(ID:huawei_kevin)。


原文链接:


https://mp.weixin.qq.com/s/VWp6kdtupva90sTxi9FX8Q


2019-10-22 23:251143

评论

发布
暂无评论
发现更多内容

低代码开发与网络信息安全:构建高效防护体系

不在线第一只蜗牛

软件开发 低代码 网络 低代码开发

【开工大吉】推荐4款开源、美观的WPF UI组件库

快乐非自愿限量之名

开源 UI WPF

业务开发自由之路:如何打破框架束缚,实现真正的框架中立性

canonical

低代码 架构设计 Nop平台 框架中立性

第39期 | GPTSecurity周报

云起无垠

Terragen 4 mac渲染软件下载 Terragen 4安装教程

Rose

Programming Abstractions in C阅读笔记:p283-p292

codists

图像处理-Java-字深字浅

alexgaoyh

Java 图像处理 边缘检测 字深 字浅

FabFilter Total Bundle 2024 全套音频插件包

Rose

全新且极易使用的视频延时制作软件Persecond for Mac

Rose

Sticky for mac 记录重要任务和事件、写下快速笔记

Rose

Mac平台上简单又好用的磁盘清理工具:BlueHarvest

Rose

The Sandbox NFT 概览与数据分析

Footprint Analytics

区块链游戏 NFT 链游

当我们在谈安全默认时我们在谈什么

I

安全架构师 安全设计 安全架构

Sora给中国AI带来的真实变化

脑极体

AI

一文搞懂设计模式—工厂方法模式

Java随想录

Java 设计模式

搭建开发年赚千万的体育赛事直播平台:关键资源与实施策略

软件开发-梦幻运营部

ETL数据集成工具DataX、Kettle、ETLCloud特点对比

RestCloud

kettle ETL DataX 集成工具 ETLCloud

计算schemas/AMs 大小的函数及 \dn++ 和 \dA++

孤傲小二~阿沐

jsp和servlet有什么区别?

百度搜索:蓝易云

Java Web Servlet 云服务器 jsp

云原生明星创业公司 Weaveworks 倒闭了,GitOps 该何去何从?

极狐GitLab

动态gif图片特效 Cinemagraph Pro for mac中文版

Rose

低代码开发:改变企业办公模式的创新之道

快乐非自愿限量之名

低代码 数字化 企业转型

一线管理者手中有哪些牌

芃篙君

管理

深入理解 Java 方法重载与递归应用

小万哥

Java 程序人生 编程语言 软件工程 后端开发

GIT日常命令收集

百度搜索:蓝易云

git 云计算 Linux 运维 云服务器

软件测试学习笔记丨性能统计工具

测试人

软件测试 性能测试 自动化测试 测试开发

[转]Arthas 3.5.1发布:神级特性!内存搜索对象

虚实的星空

转载

学习aop以及nginx

百度搜索:蓝易云

nginx 云计算 Linux 运维 aop

There will be "7" later: Interpretation of next-generation Wi-Fi technology

wallysSK

详解网络知识:iptables规则

华为云开发者联盟

开发 华为云 华为云开发者联盟 云容器网络

GaussDB(for MySQL) Serverless全面商用:无感弹性,极致性价比

华为云开发者联盟

数据库 华为云 华为云开发者联盟 华为云Serverless 华为云GaussDB(for MySQL)

DDM的前世今生——浅析分布式数据库中间件_文化 & 方法_张译文_InfoQ精选文章