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

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
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开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
目录
相关文章
|
10天前
|
SQL 关系型数据库 数据处理
实时计算 Flink版产品使用问题之如何去除源数据库的ID
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
18天前
|
缓存 运维 关系型数据库
数据库容灾 | MySQL MGR与阿里云PolarDB-X Paxos的深度对比
经过深入的技术剖析与性能对比,PolarDB-X DN凭借其自研的X-Paxos协议和一系列优化设计,在性能、正确性、可用性及资源开销等方面展现出对MySQL MGR的多项优势,但MGR在MySQL生态体系内也占据重要地位,但需要考虑备库宕机抖动、跨机房容灾性能波动、稳定性等各种情况,因此如果想用好MGR,必须配备专业的技术和运维团队的支持。 在面对大规模、高并发、高可用性需求时,PolarDB-X存储引擎以其独特的技术优势和优异的性能表现,相比于MGR在开箱即用的场景下,PolarDB-X基于DN的集中式(标准版)在功能和性能都做到了很好的平衡,成为了极具竞争力的数据库解决方案。
|
16小时前
|
关系型数据库 分布式数据库 PolarDB
顶会最高奖+1 !阿里云PolarDB再获SIGMOD最佳论文奖
顶会最高奖+1 !阿里云PolarDB再获SIGMOD最佳论文奖
7 1
|
2天前
|
SQL 网络协议 OLAP
Explorer是什么数据库,它的对标产品有哪些
Explorer是什么数据库,它的对标产品有哪些
|
8天前
|
分布式计算 大数据 关系型数据库
MaxCompute产品使用合集之如何实现类似mysql实例中的数据库功能
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
9天前
|
SQL DataWorks 关系型数据库
DataWorks产品使用合集之数据集成时源头提供数据库自定义函数调用返回数据,数据源端是否可以写自定义SQL实现
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
9天前
|
存储 关系型数据库 分布式数据库
|
9天前
|
消息中间件 DataWorks 关系型数据库
DataWorks产品使用合集之遇到无法连接到本地 MySQL 数据库的问题,该如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
11天前
|
关系型数据库 MySQL Serverless
体验阿里云PolarDB MySQL Serverless集群
体验阿里云PolarDB MySQL Serverless集群
|
8天前
|
数据采集 分布式计算 大数据
MaxCompute产品使用合集之数据集成中进行数据抽取时,是否可以定义使用和源数据库一样的字符集进行抽取
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。

热门文章

最新文章