作者:十眠
我们从应用的视角出发整理抽象了我们在访问、使用数据库时场景的一些稳定性治理、性能优化、提效等方面的实战经验,对于每一个后端应用来说,数据库无疑是重中之重,我们希望通过我们的数据库治理能力,可以帮助到大家更好地使用数据库服务。
MSE 数据库治理完整解决方案
本文将详细介绍 MSE 数据库治理的热点功能,动态读写分离的设计与实现。
读写分离的概述
数据库动态读写分离的常见场景:
-
一个大客户的请求过来,查询数据库返回上万条几百 M 的数据,数据库的 CPU 直接打满。
-
微服务应用的某些业务并不是那么重要,却存在大量查询数据库的逻辑,影响数据库实例稳定性,从而导致整体服务质量的下降。
-
在业务处理过程中,如果对数据库的读操作远多于写操作,那么在做系统性能优化时就可以考虑引入读写分离的方案,一方面只读库可以承担主库的压力,另一方面能够有效的避免由数据更新导致的锁等待,提升微服务应用的性能。
-
随着业务的增长,我们在一定时机下需要对数据库实例进行扩容。根据经验大多数应用的读写比都在 5:1 以上,有些场景甚至大量的高于 10:1,在对数据库有少量写请求,但有大量读请求的应用场景下,单个实例可能无法承受读取压力,甚至对业务产生影响。
可以了解到的是数据库读写分离方案可以满足阿里云上大多数公司的稳定性治理、性能提升以及数据库