怎么让MySQL自动化平台再快10倍?

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

我的前文《构建MySQL自动化平台思路》中提过的MySQL平台自第一期上线后,一直都是顺风顺水的。

不过....

在某次代码联调的过程中被前端妹子给喷了一脸:启动关闭页面响应灰常慢,疑似卡死了,好弱鸡啊,顺便还给了我一个神之鄙视...

在苦思N天之后,我完美地解决了这个问题,页面响应效率也得到大幅提升。

下面就来嗦嗦这个问题的解决方案吧。

本次被吐槽的是MySQL实例启停功能,以及查看MySQL状态功能。多说一句,查询MySQL状态功能尤为重要,就像黑暗中的灯塔,指引你的正确的操作。功能页面如下图:
image
下面嗦一下这个功能的设计思路:

前端读取后台数据,并且转递id值返回后台。后端的API接口根据id值进行操作,返回成功或者失败给前端页面。

接口代码如下image
相信机智的你可能已经感觉到这段代码的问题了:

1、随着MySQL的数量越多,这个页面响应时间就越长。MySQL数量的增长跟响应时间时长成正比。

2、程序造成阻塞,容易崩溃。当MySQL数量为4个的时候,响应时间为10S左右。

当时前端妹子并不知道有这个坑,一顿不耐烦的F5神操作后,系统无可救药地被刷挂了...
为了证明男人的尊严:我一定要解决这个问题,让妹子刮目相看....
在和zizi老师讨论后,我制定了下面的改进方案:
利用现有的组件celery,开启celery定时任务+Redis缓存。
大概思路是这样的:
1、把当前的主机ID主键和处理结果缓存储到Redis中,格式{id:'True'}
image
代码如下:

image
2、启用定时任务,每60秒执行一次。(并不需要很强的实时性,因不是监控系统)

3、前端接口返回,通过读取Redis中的结果,返回给前端页面。

代码如下:
image
调整完后,功能页面就再也不卡顿啦,几乎都是秒级响应,妹子的眼神又从俯视变成了仰视。我又重拾了失落的自信心~~~

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
27天前
|
Java 关系型数据库 MySQL
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
这篇文章是关于自动化测试项目实战笔记,涵盖了JDK、Tomcat、MySQL、Jpress环境的安装和搭建过程,以及测试用例和常见问题总结。
45 1
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
|
3月前
|
测试技术 Android开发 iOS开发
Appium 是一个开源的自动化测试框架,它支持多种平台和多种编程语言
Appium是一款开源自动化测试框架,支持iOS和Android多平台及多种编程语言。通过WebDriver协议,开发者可编写自动化测试脚本。在iPhone上实现屏幕点击等操作需安装Appium及其依赖,启动服务器,并设置所需的测试环境参数。利用Python等语言编写测试脚本,模拟用户交互行为,最后运行测试脚本来验证应用功能。对于iPhone测试,需准备真实设备或Xcode模拟器。
109 1
|
3月前
|
SQL 数据采集 关系型数据库
|
3月前
|
关系型数据库 MySQL 机器人
【MySQL】两个脚本自动化搞定 MySQL 备份恢复--XtraBackup
【MySQL】两个脚本自动化搞定 MySQL 备份恢复--XtraBackup
|
5月前
|
存储 关系型数据库 MySQL
21. Mysql 事件或定时任务,解放双手,轻松实现自动化
21. Mysql 事件或定时任务,解放双手,轻松实现自动化
176 1
|
5月前
|
消息中间件 Kubernetes Kafka
AutoMQ 自动化持续测试平台技术内幕
Marathon 是一个针对流系统 AutoMQ 的自动化持续测试平台,旨在在模拟生产环境和各种故障场景中验证 SLA 的可靠性。设计原则包括易拓展、可观测和低成本。平台采用分布式架构,Controller 负责资源管理和任务编排,动态调整 Worker 数量和配置,而 Worker 是无状态的,用于生成负载和上报数据。系统基于 K8S,利用服务发现、事件总线和 Spot 实例降低成本并提高弹性。测试场景以代码形式描述,支持不同流量模型和断言,提供丰富的可观测性和告警功能。未来,Marathon 有望泛化为适用于各种分布式系统的测试平台。
56 0
AutoMQ 自动化持续测试平台技术内幕
|
6月前
|
SQL 关系型数据库 MySQL
【简单无脑】自动化脚本一键安装虚拟机下的MySQL服务
该文章提供了在虚拟机上安装MySQL服务的简化方法,特别是针对新手。作者提供了一个自动化脚本`install_mysql.sh`,使得安装过程更简单。用户需要下载`install.rpm`资源,将其放在指定目录下,然后创建并编辑脚本文件,将提供的代码粘贴进去,通过`chmod u+x`授权,最后运行脚本`./install_mysql.sh [rpm文件路径]`来安装MySQL。文章还附有相关图片说明。
307 1
【简单无脑】自动化脚本一键安装虚拟机下的MySQL服务
|
6月前
|
弹性计算 运维 监控
【阿里云云原生专栏】自动化运维的艺术:阿里云云原生平台的自动化运维工具集
【5月更文挑战第28天】阿里云云原生平台提供全面的自动化运维工具,涵盖监控告警、资源管理、部署更新、故障自愈、安全管理和数据备份等方面,简化运维工作,增强系统稳定性。通过智能工具集,运维人员能专注于业务优化,实现高效运维,为企业数字化转型提供有力支持。
241 3
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
|
24天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
57 3
Mysql(4)—数据库索引