本文以MySql為例,介紹SpringBoot2.X相關主從、讀寫分離配置,話不多說,直接上步驟
1、首先進行MySql數據庫主從配置
2、添加pom依賴
<!--數據庫讀寫分離配置--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.20</version> </dependency> <!--數據庫讀寫分離配置--> <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-jdbc-spring-boot-starter</artifactId> <version>4.1.1</version> </dependency>
3、application.yml添加如下配置
spring: shardingsphere: datasource: names: master,slave # 主數據源 master: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/test_db?createDatabaseIfNotExist=true&useSSL=false&serverTimezone=Asia/Shanghai&&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true username: root password: abc123456 initialSize: 10 minIdle: 10 maxActive: 30 # 從數據源 slave: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://1localhost2:3306/test_db?createDatabaseIfNotExist=true&useSSL=false&serverTimezone=Asia/Shanghai&&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true username: root password: vbf12345 initialSize: 10 #連接池初始化連接數 minIdle: 10 #連接池最小連接數 maxActive: 30 #連接池最大連接數 masterslave: # 讀寫分離配置 load-balance-algorithm-type: round_robin # 最終的數據源名稱 name: dataSource # 主庫數據源名稱 master-data-source-name: master # 從庫數據源名稱列表,多個逗號分隔 slave-data-source-names: slave props: # 開啟SQL顯示,默認false sql: show: true
4、啟動類設置如下注解
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)//去掉數據源
5、測試結果如下:讀取從庫,寫入主庫