接上一章的内容 mysql单机搭建及主从复制环境搭建_邋遢道的博客-CSDN博客,当我们把数据库的主从复制搭建好了,可以用读写分离的方式来分担数据库的压力,至于dynamic-datasource是什么,可以自行百度,本文只做使用演练,话不多说,开干
1.基本的spring boot + mybatis plus 的环境,可以参考我前面的spring cloud alibaba系列进行操作
2.引入dynamic-datasource的依赖,这个版本不宜过低,前面我用2.4.2,还会有启动报错的情况
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
3.yml 文件
spring:
application:
name: user-service #项目名称
main:
allow-circular-references: true #2.6.0后默认不允许 允许循环依赖
datasource:
dynamic:
primary: db1 #主要数据库,如果不单独配置,就选择默认的,名字自定义,一般是叫 master
datasource:
db1:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://114.116.51.164:3306/test
username: root
password: 123456
db2:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://114.116.51.164:3307/test
username: root
password: 123456
4. 在方法或者类上加入@DS 注解配置需要使用那个数据源就可以了,是不是很简单
?5. 上面基本多数据源就可以简单使用了,只是测试的时候怎么确认是否做到了呢
? ? ? ? 在从库运行命令: 因为我是root,所以选用下面的一条命令
????????set global read_only=1? --针对普通MySQL数据库用户设置为只读 ????????set global super_read_only=1?--针对super类MySQL数据库用户设置为只读,比如root用户
? ? ? ? 也可以在修改数据库配置文件前文的? 3307.conf(不用每次重启再去改):
? ? ? ? ? ? ? ? read_only=on
? ? ? ? 现在对从库进行新增,删除,修改就会有问题了
?再去测试读写分离的接口是否成功,没有问题,那么读写分离就是成功了。这个例子是比较简单版本的,算是入门,后续如果有用到更深入的,那么在这个基础上就可以往下研究了
|