一分钟了解阿里云产品:分布式关系型数据库DRDS

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

一、             概述

 

阿里云发布的产品种类齐全,今天就让我们一起来了解下分布式关系型数据库服务(Distribute Relational Database Service,简称DRDS)吧。

 

 

什么是DRDS呢?

 

DRDS是一种水平拆分、可平滑扩缩容、读写分离的在线分布式数据库服务。前身为淘宝TDDL,是近千个应用首选组件,已稳定服务了七年以上。

 

 

那么,DRDS有什么优势呢?

 

  • DRDS简单易用。如同单MySQL数据库使用,兼容MySQL交互协议,兼容90%以上的MySQL SQL。
  • DRDS稳定可靠。共享阿里TDDL、COBAR组件,支持阿里内部交易、商品等核心应用。
  • DRDS水平拆分,容量达单节点百倍,内部最大集群达200多个MySQL节点。
  • DRDS可扩展。增减节点对应用几乎无影响,独有的高效数据迁。

 

 

正是因为这些优势,DRDS为您快速搭建专业分布式关系型数据库服务,让你忘掉成长的烦恼!DRDS在功能上能给您提供如下服务:

 

  • 分布式SQL引擎:将数据按照条件分散到多个数据节点(分库分表),对于数据操作sql进行分布式优化,获得最佳执行效率。

 

  • 自主运维:DRDS的用户运维平台提供DRDS接入、分布式DDL、拆分信息维护、平滑扩缩容、分布式DML、监控等常用功能,让运维工作变得更简单。

 

  • 小表复制:对于配置表,常量表等不经常变化的表进行多节点对等同步,加速该类表与其他拆分表做关联查询的速度。

 

  • 分布式全局唯一id:提供全局唯一数字id服务,帮助您在分布式环境下,继续保持类似唯一键、主键等数据的全局(所有节点)唯一性。

 

 

您可能想知道,什么场景中适合应用DRDS呢?

 

DRDS典型的应用场景有:突破单个数据库瓶颈轻量级数据分析、冷热数据分离、动态数据读写分离等。

 

众多客户信赖DRDS,目前,虾米网、网聚宝、华甫达、安存等都在使用DRDS。

 

DRDS典型特性介绍:

https://www.aliyun.com/product/drds/?spm=5176.2115824.3.55.Dvizj4

 

 

 

二、             技术点(DRDS五大热点技术问题分析)

 

在上一篇文章中,我们为大家介绍DRDS的概况,分布式关系型数据库服务(Distribute Relational Database Service,简称DRDS)是一种水平拆分、可平滑扩缩容、读写分离的在线分布式数据库服务。前身为淘宝TDDL,是近千个应用首选组件,已稳定服务了七年以上。那在使用过程中,经常遇到的热门技术问题有哪些呢?

 

控制台使用:

https://help.aliyun.com/document_detail/drds/quick-start/console_use.html?spm=5176.docdrds/brief-manual/summary.6.85.SSvRzC

 

DRDS使用:

https://help.aliyun.com/document_detail/drds/quick-start/drds_use.html?spm=5176.docdrds/quick-start/console_use.6.86.XlYpih

 

数据拆分策略:

https://help.aliyun.com/document_detail/drds/best-practice/best_shard.html?spm=5176.docdrds/quick-start/drds_use.6.88.fH106h

 

数据的导入与导出:

https://help.aliyun.com/document_detail/drds/best-practice/best_data_import_export.html?spm=5176.docdrds/best-practice/best_connection_pool.6.90.lgPvqW

 

SQL优化:

https://help.aliyun.com/document_detail/drds/best-practice/best_sql_optimizer.html?spm=5176.docdrds/best-practice/best_data_import_export.6.91.CsOioq

 

 

希望上面的内容,能够对大家有所帮助。

 

 

 

三、             体验(DRDS分布式事务在奥林公司咖狗网的应用实践)

 

咖狗网是奥林科技旗下的国际物流交易服务平台。基于该平台,国际物流货代企业可以获取运价发布、在线订舱等服务。

 

咖狗网采用SOA(service-oriented architecture)技术架构,如下图所示:

e2133a04f5b3a6a02051572d3671667df1d50aeb

 

咖狗网由若干个业务模块组成(运价模块、买家模块、卖家模块等),模块之间通过RPC服务进行交互。以订舱场景为例,涉及的业务模块包括:

d98595110205aaed720cae012e8e4e446b13e92a

 

用户进行订舱操作,后台的RPC服务会在运价模块中扣除仓位信息、在买家模块/卖家模块中插入订单信息、在积分模块中累加积分。

 

问题描述

多个RPC服务的调用,涉及多个数据库中多张数据库表的操作。如何保证多个RPC服务在业务上能够保持最终一致?这个问题曾一度困扰奥林公司平台开发部的设计人员。通过查阅相关资料得知,我们遇到的问题属于“SOA系统中的分布式事务”范畴。网上也有一些相关的解决方案介绍,比如两阶段提交、WS-Transaction标准等。但是,基于我们当时的人力、在有限的时间内,开发一个两阶段提交框架,似乎不太现实。

 

 

解决方案

通过多方打听了解到,淘宝的分布式中间件(TXC),可以解决我们的问题,现已集成到DRDS中。

DRDS分布式事务的原理:

分布式事务协调器负责分配事务上下文id,应用层代码将该id透传给业务上需要保证最终一致性各RPC服务。事务协调器根据各RPC服务预处理的结果(成功/失败),来决定整个事务的统一提交/回滚。业务SQL在执行前后,会生成事务日志,在日志中包含前置镜像和后置镜像。提交的时候,删除事务日志即可;回滚的时候,依赖事务日志中包含的前置镜像和后置镜像。如果回滚失败,会通过异常处理机制,通知用户人工介入。

基于咖狗网技术架构,将DRDS分布式事务集成进来,仅需要两个步骤:

 

1、在REST层模块中,通过事务模块开启一个全局事务,生成全局事务xid。在RPC服务调用过程中,需要将该xid透传给各RPC服务。代码如下:

bee8cb0672220a465b83076fee16520472654021

2、在RPC服务的接口实现中,将xid设置到与业务操作相同的数据库连接中。

为了保证将xid设置到与业务操作相同的数据库连接中,通过Spring的AOP切面方法来实现。

 

经过与阿里技术人员近一周的联调,一路披荆斩棘,咖狗网的分布式事务问题最终解决。

感谢阿里中间件团队在该项目中提供的帮助!

 

如果您想详细了解DRDS,请访问:

https://bbs.aliyun.com/read/243060.html?spm=5176.bbsl258.0.0.RRRGDi

 

汇通天下,基于DRDS实现数据扩展:

https://yq.aliyun.com/articles/6833?spm=5176.100240.searchblog.8.C3ZVbx

 

 

 

相关实践学习
Polardb-x 弹性伸缩实验
本实验主要介绍如何对PolarDB-X进行手动收缩扩容,了解PolarDB-X 中各个节点的含义,以及如何对不同配置的PolarDB-x 进行压测。
目录
相关文章
|
2月前
|
关系型数据库 分布式数据库 PolarDB
电子书阅读分享《PolarDB开发者大会:分布式的PolarDB》
电子书阅读分享《PolarDB开发者大会:分布式的PolarDB》
33 6
|
2月前
|
存储 关系型数据库 分布式数据库
选300平米别墅还是90平米小平层?一文带你读懂PolarDB分布式版集分一体化
1月17日,在阿里云PolarDB开发者大会上,阿里云PolarDB分布式产品部负责人黄贵发表了《分布式的PolarDB:分布式的能力,一体化的体验》主题演讲。
|
3月前
|
存储 关系型数据库 分布式数据库
选300平米别墅还是90平米小平层?一文带你读懂PolarDB分布式版集分一体化
PolarDB分布式版内核上具备了集中式分布式一体化的技术融合,支持集中式和分布式两种形态无缝切换。
选300平米别墅还是90平米小平层?一文带你读懂PolarDB分布式版集分一体化
|
9天前
|
Docker 容器 关系型数据库
【PolarDB-X从入门到精通】 第四讲:PolarDB分布式版安装部署(源码编译部署)
本期课程将于4月11日19:00开始直播,内容包括源码编译基础知识和实践操作,课程目标是使学员掌握源码编译部署技能,为未来发展奠定基础,期待大家在课程中取得丰富的学习成果!
【PolarDB-X从入门到精通】 第四讲:PolarDB分布式版安装部署(源码编译部署)
|
3月前
|
运维 关系型数据库 分布式数据库
PolarDB是阿里云提供的一种关系型数据库服务
PolarDB是阿里云提供的一种关系型数据库服务【1月更文挑战第17天】【1月更文挑战第82篇】
38 1
|
3月前
|
Cloud Native Java 开发工具
云原生 阿里云分布式文件系统 对象存储OSS 服务配置
【1月更文挑战第8天】云原生 阿里云分布式文件系统 对象存储OSS 服务配置
|
4月前
|
关系型数据库 分布式数据库 数据库
开营啦|PolarDB分布式版训练营,参营享限定版新年好礼
有机会领取阿里云新年礼盒大礼包等价值千元好礼
开营啦|PolarDB分布式版训练营,参营享限定版新年好礼
|
1月前
|
SQL 关系型数据库 MySQL
Flink CDC产品常见问题之读分布式mysql报连接超时如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
2月前
|
存储 监控 Windows
ABB 分布式控制系统 DCS紧凑型产品套件 紧凑型HMI
ABB 分布式控制系统 DCS紧凑型产品套件 紧凑型HMI
ABB 分布式控制系统 DCS紧凑型产品套件 紧凑型HMI
|
2月前
|
关系型数据库 分布式数据库 PolarDB
电子书阅读分享《PolarDB开发者大会:分布式的PolarDB》
电子书阅读分享《PolarDB开发者大会:分布式的PolarDB》
24 4