介绍
支持项
- 提供一主多从的读写分离配置,可独立使用,也可配合数据分片使用
- 事务中的数据读写均用主库
- 基于 Hint 的强制主库路由
不支持项
- 主库和从库的数据同步
- 主库和从库的数据同步延迟导致的数据不一致
- 主库多写
- 主从库间的事务一致性。主从模型中,事务中的数据读写均用主库
1. maven项目依赖
<dependencies>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId>
<version>5.1.0</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
</dependencies>
2.application.yml配置
spring:
shardingsphere:
datasource:
names: dsm0,dss0
dsm0:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: jdbc:mysql://127.0.0.1:3306/bbs_800001?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
password: li123456
username: root
dss0:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: jdbc:mysql://127.0.0.1:3306/bbs_800002?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
password: li123456
username: root
rules:
readwrite-splitting:
data-sources:
readwrite_ds:
load-balancer-name: round_robin
props:
read-data-source-names: dss0
write-data-source-name: dsm0
type: Static
load-balancers:
round_robin:
type: ROUND_ROBIN
3.测试Sql脚本
CREATE TABLE `bbs_800002`.`t_tag` (
`id` bigint NOT NULL,
`create_time` datetime NULL DEFAULT NULL,
`creator` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`status` int NOT NULL,
`update_time` datetime NULL DEFAULT NULL,
`updater` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`name` varchar(190) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`sort` int NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
4.单元测试Test
@Slf4j
@SpringBootTest
class TagMapperTests {
@Autowired
private TagMapper tagMapper;
@Test
void findAll() {
List<Tag> list = tagMapper.findAll();
log.info("===>{}", list);
}
}
本文介绍了如何使用ShardingSphere-JDBC和Spring Boot进行Mybatis的读写分离配置,强调了主从库的读写规则及事务处理,并提供了项目依赖、配置文件、测试脚本和单元测试的相关信息。

1171

被折叠的 条评论
为什么被折叠?



