springboot 實現讀寫分離,分庫分表 (二) 使用SHARDINGJDBC讀寫分離

上個博客講了MYSQL的主從配置,主從數據庫配好了以後

就可以實現讀寫分離了。

一般讀寫分離,主庫做增刪改等操作,

從庫做查詢操作。如果查詢多的話,可以多做幾天從庫。

SHARDINGJDBC最開始是由噹噹網開始的一個開源項目。由於反響好

直接進入apache的孵化項目,更名爲 SHARDINGSPHERE

GITHUB項目地址: https://github.com/apache/incubator-shardingsphere

下面是一些主要代碼是說明

1,引入jar,注意這裏springboot的版本不要太高,官網的例子是2.0.6.RELEASE

我用了springboot最新的版本,啓動一致報錯,bean衝突。主要如下。

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.0.6.RELEASE</version>
   <relativePath/>
</parent>
<dependency>
   <groupId>org.apache.shardingsphere</groupId>
   <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
   <version>4.0.0-RC1</version>
</dependency>

2,配置文件配置:

spring:
  shardingsphere:
    props:
      sql:
        show: true
    datasource:
      names: master,slave   #對應下面主從庫
      master:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://192.168.89.129:3306/shrek-db?characterEncoding=utf-8
        username: root
        password: 123456
      slave:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://192.168.89.130:3306/shrek-db?characterEncoding=utf-8
        username: root
        password: 123456
    masterslave:
      load-balance-algorithm-type: round_robin  #負載 輪詢,當你有多個從庫或者主庫時
      name: ms
      master-data-source-name: master           #設置主庫
      slave-data-source-names: slave            #設置從庫

很簡單吧,就加了點代碼,SHARDINGSPHERE會幫你自動切庫,

當你做增刪改時,會直接操作主庫,

當你做查詢操作時,會直接查詢從庫,這裏數據庫壓力就可以平攤出來了

而我們一般的系統都是增刪改少,查詢多,就可以多設置幾個從庫,

下面是查詢和增加效果切圖

查詢查從庫,如下:

增加操作主庫:如下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章