引言
读写分离基于 主从复制
指定数据源
-
在 Spring Boot 的配置文件中,配置多个数据源,一个用于写操作,多个用于读操作。
-
编写配置类,不同数据源映射不同的 mapper。
-
在具体的业务逻辑代码中,根据读写操作,操作对应的 mapper。
动态代理
-
定义读写分离的注解,用于标识读操作和写操作的方法。
-
编写一个动态代理类,通过拦截方法调用,根据注解的标识来切换数据源。
-
配置 AOP 切面,将动态代理类应用于目标方法。
-
在具体的业务逻辑代码中,使用定义的注解来标识读操作和写操作的方法。
第三方组件
-
MyBatis-Plus:MyBatis-Plus 是一个优秀的ORM框架,它提供了读写分离的支持,通过配置
master
和slave
数据源,MyBatis-Plus 会自动根据 SQL 类型选择对应的数据源。 -
ShardingSphere:ShardingSphere 是一个强大的分布式数据库中间件,支持读写分离和分库分表等功能。通过配置
master-slave
数据源和 SQL 解析规则,ShardingSphere 可以自动路由读写操作到对应的数据源。
代理
- MyCat:MyCat 是基于 Java 语⾔编写的数据库中间件,配置数据库读写分离后,通过访问 MyCat 就可以达到效果。