写点什么

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:251488

评论

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

软件公司定制开发的软件有哪些?

天津汇柏科技有限公司

软件开发定制

零售业海量场景下 ToC 系统的数据库选型和迁移实践

TiDB 社区干货传送门

实践案例

Gartner 2023 API管理魔力象限发布,SmartBear被评为“远见者”

龙智—DevSecOps解决方案

Gartner SmartBear

深入剖析Java中的反射,由浅入深,层层剥离!

不在线第一只蜗牛

Java 编程 前端 开发语言

面试官:你能简单聊聊MyBatis执行流程

华为云开发者联盟

Java 开发 华为云 华为云开发者联盟

TiDB 事务心跳超时机制测试

TiDB 社区干货传送门

故障排查/诊断

关于如何优化TiDB中的写热点问题

TiDB 社区干货传送门

实践案例 7.x 实践

IBM Storage Ceph:现代数据湖仓的理想技术底座

财见

WebSocket 教程:实现二进制数据传输的详细指南

Apifox

前端 后端 websocket 实时通信 二进制数据

初识TiDB Data Migration迁移工具及实践

TiDB 社区干货传送门

迁移 7.x 实践

Atlassian Intelligence功能简介,AI驱动生成、概括、优化内容,助力工作效率加倍

龙智—DevSecOps解决方案

AI Atlassian

如何通过ETL实现快速同步美团订单信息

RestCloud

美团 ETL 数据集成工具

PingCAP 故事|势高,则围广:TiDB 的架构演进哲学

TiDB 社区干货传送门

2023 OpenHarmony年度运营报告

OpenHarmony开发者

OpenHarmony

Unity 现正式支持 visionOS 平台,赋能Apple Vision Pro应用创建

财见

基于生成式人工智能的平台 Cognizant Flowsource™ 发布,旨在为现代工程提供动力

财见

【鸿蒙千帆起】高德地图携手HarmonyOS NEXT,开启智能出行新篇章

HarmonyOS开发者

HarmonyOS

专科逆袭!裁员后薪资翻倍,他的成功秘诀竟然是…

测吧(北京)科技有限公司

测试

从 20 多套 MySQL 到 1 套 TiDB丨骏伯网络综合运营管理平台应用实践

TiDB 社区干货传送门

实践案例

游戏开发巨擘的选择:2023 TGA获奖工作室共同青睐Perforce版本控制

龙智—DevSecOps解决方案

游戏开发 游戏 TGA

2023年哪个前端框架用的最多?

伤感汤姆布利柏

Aetina发布首款采用NVIDIA Ada Lovelace架构的MXM图形模块

财见

Java 程序员的待遇为何一直居高不下?

伤感汤姆布利柏

作业帮 x TiDB | 多元化海量数据业务的支撑

TiDB 社区干货传送门

TiDB 在全球头部物流企业计费管理系统的应用实践

TiDB 社区干货传送门

实践案例

Ray on ACK 实践探索之旅 - RayCluster 篇

阿里巴巴云原生

阿里云 云原生 ray

京东广告算法架构体系建设--大规模稀疏场景高性能训练方案演变

京东科技开发者

火山引擎边缘云2023年度回顾,挑战与创新的交响乐章

火山引擎边缘云

边缘计算 火山引擎 火山引擎边缘云

云MySQL 主节点故障

腾讯云混沌演练平台

混沌工程 MySQL主节点故障

揭秘C语言的心脏:深入探索指针与数组的奥秘

不在线第一只蜗牛

Java C语言 开发语言

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