在高并发的互联网项目中,数据库的压力一直是一个瓶颈,而大量的操作均为读操作,通过MySQL的读写分离,一主多从的当时能够大大的降低数据库的压力。在之前的Springboot章节中有过类似的话题,当时我们可以通过配置多个数据源,通过不同的数据源指向实现读写分离,还实现了基于AOP的动态数据源切换,当然这也需要归功于Spring提供了数据源的路由功能,不过此方式依然会对我们的业务代码造成侵入,本章将通过MyCat实现无侵入的读写分离。
基础设施
目前本地已经运行有3个实例服务
Master 127.0.0.1:3310
Slave 127.0.0.1:3321
Slave 127.0.0.1:3322
本案例主要验证读写分离,故数据库均为springboot1,且用户名密码均为root。
特殊数据,由于我们是单向的复制,故将3321中的被查询数据的password调整为1111,3310和3322中均为111,后续将通过对此数据的查询验证。
工程改造
1、调整内容非常简单,仅需要我们将原MySQL的连接信息替换为MyCat的连接信息即可:
#single configure
#spring.datasource.url=jdbc:mysql://localhost:3306/springboot1?useSSL=false
#spring.datasource.username=root
#spring.datasource.password=root