【RDS】双十一背后的数据库技术

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 双十一是一年一度的购物盛宴,经常会出现几万人抢一个红包或者很多人共同购买一个商品的情况,这就引发了一个数据库比较担心的场景---高并发。本文将带您了解双十一阿里云RDS数据库背后技术的小秘密。

作为历届双十一重要保障之一的云数据库RDS团队,从参数优化、链路访问、弹性扩容、架构设计等方面应对高并发场景(如秒杀、百万人抢单等),保障双十一顺利进行。


数据库参数

在处理高并发场景的时候,一些特定的数据库参数就成了数据快速响应、平顺处理的关键。以RDS MySQL 5.6为例,有如下几个重要参数:

  • loose_rds_max_tmp_disk_space:控制MySQL能够使用的临时文件的大小。
  • loose_rds_threads_running_high_watermark:控制MySQL并发的查询数目,常用于秒杀业务场景。
  • loose_tokudb_buffer_pool_ratio:控制TokuDB引擎能够使用的buffer内存大小。
  • loose_max_statement_time:控制MySQL查询的最长执行时间。

接下来举例说明loose_rds_threads_running_high_watermark在秒杀场景下的影响。

loose_rds_threads_running_high_watermark.png

在秒杀活动刚开始的时候,可以看到连接数呈指数级变化,瞬间增加了10倍。

增加了10倍.png

调整参数之前,可以看到run数值非常高,会导致数据库报警。

run数值非常高.png

调整参数之后,update数值与run数值往好的方向变化,并发性能得到了增强。


链路访问

在链路访问方面,我们提供更高安全性的数据库代理访问模式,用户可以根据需要随时开启或关闭。

数据库代理对应用透明无感知,也无需人工干预,大大降低了运维成本。

数据库代理.png

目前,数据库代理支持如下功能:

  • 读写分离:提供透明的读写分离功能,应用层无需修改代码,将查询请求分发到RDS只读实例,降低主库的负载。
  • 设置连接池类型:有效解决短连接业务(例如PHP)频繁建立新连接导致实例负载过高的问题。
  • 事务拆分:能够将事务内写操作之前的读请求转发到只读实例,降低主实例负载。


弹性扩容

RDS实例支持弹性扩容,既可以纵向增加本身实例规格,也可以横向增加只读实例数量。用户提前扩容,就可以在双十一期间笑对大流量冲击,而在高峰期过后也可以及时释放掉多余实例,避免资源浪费。

弹性扩容.png


架构设计

为了应对日渐增长的双十一购买数据量和仓储数据量,RDS团队也对各个支持的数据库进行了新的架构设计,ApsaraDB for RDS当前支持五款关系型引擎,提供容灾、备份、恢复、监控等方面的全套解决方案。

RDS支持的引擎 MySQL MariaDB TX SQL Server PostgreSQL PPAS
引擎特征
  • 甲骨文公司的开源数据库(社区版)
  • LAMP的重要组成,广泛应用于互联网行业
  • MySQL的分支,兼容MySQL
  • 良好兼容Oracle
  • 微软的商业数据库
  • 对基于Windows平台.NET架构的应用程序具有完美的支持
  • 起源于UC Berkeley的开源数据库
  • 面向企业复杂SQL处理的OLTP在线事物处理场景
  • PPAS是PostgreSQL企业版
  • 高度兼容Oracle
核心优势
  • 源码性能调优、功能定制(AliSQL分支)
  • 数据库运维全套解决方案
  • MariaDB TX是企业级解决方案
  • 数据库运维全套解决方案
  • 正版License
  • 数据库运维全套解决方案
  • 源码性能调优、功能定制
  • 数据库运维全套解决方案
  • 正版License
  • 数据库运维全套解决方案
应用场景 互联网行业 互联网行业 传统中小企业 处理空间信息的相关应用 Oracle兼容应用


信息安全

信息安全问题也一直是商家和用户最关心的问题,在疯狂的“剁手”中,您一定不想您的商品信息和购买信息被泄露,对于这个问题,RDS团队做了多重保护,确保用户信息安全。

安全设计.png

除了以上几点,RDS团队还对数据库的性能等进行了重新优化,让商家和购买者完全不用担心数据库的性能和安全问题,无忧无虑的“剁手”,尽情享受双十一盛会!

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
19天前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
42 3
|
18天前
|
负载均衡 网络协议 数据库
选择适合自己的数据库多实例负载均衡技术
【10月更文挑战第23天】选择适合自己的数据库多实例负载均衡技术需要全面考虑多种因素。通过深入的分析和评估,结合自身的实际情况,能够做出明智的决策,为数据库系统的高效运行提供有力保障。
103 61
|
8天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
23 4
|
6天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
19 1
|
16天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
30 3
|
15天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
78 1
|
17天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
59 2
|
18天前
|
缓存 负载均衡 监控
数据库多实例的负载均衡技术深入
【10月更文挑战第23天】数据库多实例负载均衡技术是确保数据库系统高效运行的重要手段。通过合理选择负载均衡策略、实时监控实例状态、不断优化调整,能够实现资源的最优分配和系统性能的提升。在实际应用中,需要根据具体情况灵活运用各种负载均衡技术,并结合其他相关技术,以满足不断变化的业务需求。
|
18天前
|
Java 数据库连接 数据库
优化之路:Java连接池技术助力数据库性能飞跃
在Java应用开发中,数据库操作常成为性能瓶颈。频繁的数据库连接建立和断开增加了系统开销,导致性能下降。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接,显著减少连接开销,提升系统性能。文章详细介绍了连接池的优势、选择标准、使用方法及优化策略,帮助开发者实现数据库性能的飞跃。
25 4
|
16天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
16 1