针对大多数的后端应用来讲,系统的瓶颈主要受限于数据库,同时复杂的业务也离不开数据库的操作。因此无论是在稳定性的治理上,还是在开发提效的场景下,数据库相关的治理能力都是微服务治理中必不可少的一环。
数据库治理的常见问题
- 系统对外提供查询接口,由于SQL语句涉及多表Join,因此可能会触发慢查询,最终导致DB连接池/Tomcat线程池满,应用整体不可用。
- 在应用启动时,数据库Druid连接池处于初始化,同时伴有大量请求进入,可能导致Dubbo的线程池满。从而造成在初始化数据库连接的过程中,业务请求大量报错。
- 在全链路灰度场景中,由于新的应用版本对数据库/表的内容进行修改,导致线上数据库的数据错乱。
- 在项目初期没有对SQL的性能做好考量,随着业务的发展,用户量级的增加,线上遗留旧接口的SQL逐渐成为性能瓶颈。
- SQL语句处理时间比较长导致线上业务接口出现大量的慢调用,需要快速定位有问题的慢SQL。