三、項目實現讀寫分離 實現方式跟同一個目錄下的01-讀寫分離測試案例基本一致,只不過是將資料庫替換成了項目使用的資料庫 ==同時還有非常重要的一點,ShardingSphere-JDBC的作用不止是讀寫分離,更重要的是其能通過配置文件配置指定演算法,可以自動化的完成對資料庫進行分庫分表操作,且不需要更 ...
三、項目實現讀寫分離
實現方式跟同一個目錄下的
01-讀寫分離測試案例
基本一致,只不過是將資料庫替換成了項目使用的資料庫
- 同時還有非常重要的一點,ShardingSphere-JDBC的作用不止是讀寫分離,更重要的是其能通過配置文件配置指定演算法,可以自動化的完成對資料庫進行分庫分表操作,且不需要更改任何代碼
- 關於分庫分表操作,因為本次項目案例數據量較小,暫不使用。感興趣的朋友可以參考後續新聞頭條項目練習的相關博客
3.1、資料庫環境準備
- 導入項目中的資料庫即可
- 在個人項目中使用可視化軟體,將相關表進行一個導出,然後再對虛擬機中的資料庫進行導入
- 因為操作比較簡單,具體過程這裡就不演示了
3.2、讀寫分離配置
跟
01-讀寫分離案例
基本沒區別,更換資料庫名稱即可
-
①、引入Sharding-JDBC的相關依賴
-
<dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-jdbc-spring-boot-starter</artifactId> <version>4.0.0-RC1</version> </dependency>
-
-
②、配置數據源
-
#spring: # datasource: # driver-class-name: com.mysql.jdbc.Driver # url: jdbc:mysql://192.168.222.135:3306/tb_user?useSSL=false&characterEncoding=UTF-8 # username: root # password: root spring: shardingsphere: datasource: names: master,slave # 主數據源 master: type: com.alibaba.druid.pool.DruidDataSource dirver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://192.168.200.200:3306/reggie?useSSL=false&characterEncoding=UTF-8 username: root password: root #從數據源 slave: type: com.alibaba.druid.pool.DruidDataSource dirver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://192.168.200.201:3306/reggie?useSSL=false&characterEncoding=UTF-8 username: root password: root masterslave: # 讀寫分離配置 load-balance-algorithm-type: round_robin # 輪詢負載均衡 # 最終的數據源名稱 name: dataSource # 主資料庫的名稱 master-data-source-name: master slave-data-source-names: slave props: sql: show: true # 開啟SQL顯示,預設為false main: # 該配置項的目的,就是如果當前項目中存在同名的bean,後定義的bean會覆蓋先定義的。 # 如果不配置該項,項目啟動之後會報錯 allow-bean-definition-overriding: true mybatis: type-aliases-package: com.coolman.model # configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl map-underscore-to-camel-case: true mapper-locations: - classpath:mappers/*.xml server: port: 8081
-
3.3、功能測試
運行項目,執行測試
- 配置完畢後,啟動項目進行測試,直接訪問系統管理後臺的界面,然後執行相關業務操作,看控制台的日誌信息即可
- 查詢操作192.168.200.201:3306
- 更新操作192.168.200.200:3306
- 插入操作
- 刪除操作