摘要: 双十一就要来了,全世界都为其疯狂,可是在双十一抢购中常常会出现几万人抢一个红包或者不少人共同购买一个商品的状况,这就引起了一个数据库比较担忧的场景----高并发。做为历届双十一重要保障之一的云数据库RDS部门,从参数优化、链路访问、弹性扩容、架构设计等方面应对高并发场景(如秒杀、百万人抢单等),保障双十一顺利进行。数据库
【战报】11月11日聚石塔(阿里云数据库RDS产品形态)峰值QPS突破X00w,Proxy 峰值QPS超过X00w。安全
双十一就要来了,全世界都为其疯狂,可是在双十一抢购中常常会出现几万人抢一个红包或者不少人共同购买一个商品的状况,这就引起了一个数据库比较担忧的场景----高并发。做为历届双十一重要保障之一的云数据库RDS部门,从参数优化、链路访问、弹性扩容、架构设计等方面应对高并发场景(如秒杀、百万人抢单等),保障双十一顺利进行。那么背后的技术是如何实现的呢?本文,将带您展开双十一阿里云RDS数据库背后技术的小秘密。架构
参数优化
在处理“高并发”场景的时候,一些特定的数据库参数就成为可否保障数据快速响应和平顺处理“高并发”问题,就成了关键,以下列出了几个特别重要的参数:
•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
是“秒杀”场景开始的时候,能够看到链接数成指数级变化,瞬间增长了10倍
运维
调整参数以前,能够看到RUN数量很是高,会致使数据库报警
高并发
调整参数以后,update数值与run数值承更好的方向变化性能
链路访问
在链路访问方面,咱们提供更高安全性的数据库代理访问模式,用户能够根据须要随时开启或关闭。数据库代理的规格大小由RDS系统自动管理,能够在保证租户间资源隔离的前提下,根据负载大小自适应调节。数据库代理对应用透明无感知,也无需人工干预,大大下降了运维成本。
以下图所示
优化
数据库代理位于应用程序(Client)和数据库引擎(Database Engine)中间,由RDS系统自动进行维护,全部的数据库请求(Request)和响应(Response)均从代理层通过和处理。阿里云
目前,数据库代理支持以下功能:数据库代理支持如下功能:
• 透明切换:RDS实例在发生故障、规格升级或降级时,数据库代理可使实例切换更加柔和,下降对应用的影响。
• 读写分离:提供透明的读写分离功能,应用层无需修改代码,查询分发到RDS只读实例,下降主库的负载。
spa
• 短链接优化:突发高并发的短链接(常见于PHP应用)在代理层进行缓冲,减轻对DB层的冲击,下降RDS的CPU负载和CPS(每秒新建链接数),保障数据库运行稳定。
• 防暴力破解:保护RDS实例帐号密码,规避帐号密码被暴力破解。
弹性扩容
在扩容升级的过程当中,主要分为两种状况:本机升级和跨机升级
本机升级
跨机升级,还要作备份数据和日志的迁移工做
扩容升级的常见问题
架构设计
为了应对日渐增加的双十一购买数据量和仓储数据量,RDS也对各个支持的数据库进行了新的架构设计。
以下表,引擎选择方面:ApsaraDB for RDS,当前支持4款关系型引擎,提供容灾、备份、恢复、监控等方面的全套解决方案
:
RDS自带的读写分离,让用户使用更方便:
另外,安全问题也一直是商家和用户最关心的问题,在疯狂的‘剁手’中,您必定不想您的商品信息或者购买信息有安全披露,对于这个问题,RDS在安全方面也作了多重保护和设计:
除了以上几点,RDS团队还对数据库的性能等进行了从新的优化,让商家和购买者在抢购中彻底不用担忧数据库的性能和安全问题,无忧无虑的‘剁手’,尽情享受双十一盛会!