最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ShardingSphere之讀寫分離方式

 更新時間:2025年05月28日 12:21:44   作者:菜逼の世界  
這篇文章主要介紹了ShardingSphere之讀寫分離方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

ShardingSphere-讀寫分離

讀寫分離

  • 依賴于 MySQL的主從集群 搭建手冊
  • 查詢 走的是從庫(Slave)
  • 新增、更新、刪除走的是主庫(Master)

MySQL主從集群

節(jié)點角色主機地址端口用戶名密碼庫名
master192.168.40.1283306rootRoot@123456db_demo
slave192.168.40.1293306rootRoot@123456db_demo

創(chuàng)建 user 表

主節(jié)點執(zhí)行見表語句

CREATE TABLE `user`  (
  `id` bigint NOT NULL,
	`client_id` bigint NOT NULL,
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `age` int NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

從節(jié)點刷新查看

項目代碼

復用之前的 user 表操作代碼即可

讀寫分離配置

application.yml

# 主從配置  讀寫分離
server:
  port: 8081

spring:
  main:
    # 一個實體類對應兩張表,覆蓋
    allow-bean-definition-overriding: true
  shardingsphere:
    datasource:
      names: m1,s1 # 主庫 從庫
      m1:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://192.168.40.128:3306/db_demo?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
        username: root
        password: Root@123456
      s1:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://192.168.40.129:3306/db_demo?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
        username: root
        password: Root@123456
    sharding:
      tables:
        user:
          # 分表策略  固定分配到主庫的user表 即 m1.user
          actual-data-nodes: m1.user
      # 主庫從庫規(guī)則定義
      master-slave-rules:
        m1:
            # 主庫
            master-data-source-name: m1
            # 從庫
            slave-data-source-names: s1
    props:
      # 打印SQL日志
      sql:
        show: true

測試結果

新增測試

  • 測試類代碼
@Test
void insert() {
     for (int i = 0; i < 5; i++) {
         User user = new User();
         user.setId(i + 1);
         user.setName("user_" + user.getId());
         user.setClientId(10000);
         user.setAge(18 + i);
         userMapper.insert(user);
     }
 }
  • 運行結果

操作的必須是主庫 對應的數(shù)據(jù)源 m1


主庫查看

從庫查看

更新測試修改前

  • 測試類代碼

修改 id=5 的記錄的 name, user_5 => Tom

@Test
 void update() {
     User user = new User();
     user.setId(5);
     user.setName("Tom");
     userMapper.updateById(user);
 }
  • 運行結果

操作的必須是主庫 對應的數(shù)據(jù)源 m1

查看主庫

查看從庫

刪除測試

刪除 id=5 的記錄

  • 測試代碼
@Test
void delete() {
    userMapper.deleteById(5);
}
  • 運行結果

操作的必須是主庫 對應的數(shù)據(jù)源 m1

查看主庫

查看從庫

查詢測試

指定ID查詢,查找id為 2、3 的記錄

  • 測試代碼
@Test
void selectById() {
    List<User> list = userMapper.selectList(new QueryWrapper<User>().in("id", 2, 3));
    System.out.println(JSONArray.toJSONString(list));
}
  • 運行結果

操作的必須是從庫 對應的數(shù)據(jù)源 s1

總結

  • 完美的詮釋了 讀寫分離
  • 驗證了 MySQL主從集群的正確性
  • 新增、更新、刪除 都 操作主庫 且 同步到從庫
  • 查詢 只能操作 從庫

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • mybatisPlus自定義批量新增的實現(xiàn)代碼

    mybatisPlus自定義批量新增的實現(xiàn)代碼

    這篇文章主要介紹了mybatisPlus自定義批量新增的實現(xiàn)代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • jasypt SaltGenerator接口定義方法源碼解讀

    jasypt SaltGenerator接口定義方法源碼解讀

    這篇文章主要為大家介紹了jasypt SaltGenerator接口定義方法源碼解讀,,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • SpringBoot啟動參數(shù)的實現(xiàn)

    SpringBoot啟動參數(shù)的實現(xiàn)

    SpringBoot通過jar文件方式啟動,配置可以通過啟動參數(shù)進行覆蓋,本文就來介紹一下SpringBoot啟動參數(shù)的實現(xiàn),感興趣的可以了解一下
    2025-01-01
  • JPA如何使用nativequery多表關聯(lián)查詢返回自定義實體類

    JPA如何使用nativequery多表關聯(lián)查詢返回自定義實體類

    這篇文章主要介紹了JPA如何使用nativequery多表關聯(lián)查詢返回自定義實體類,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java引用類型WeakReference用法及原理詳解

    java引用類型WeakReference用法及原理詳解

    Java弱引用(WeakReference)是一種特殊的引用類型,當垃圾回收器運行時,無論內存是否充足,只要發(fā)現(xiàn)對象僅被弱引用指向,就會立即回收該對象,這篇文章主要介紹了java引用類型WeakReference用法及原理的相關資料,需要的朋友可以參考下
    2026-01-01
  • SpringBoot Jpa分頁查詢配置方式解析

    SpringBoot Jpa分頁查詢配置方式解析

    這篇文章主要介紹了SpringBoot Jpa分頁查詢配置方式解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • Java網(wǎng)絡編程三要素及通信程序詳解

    Java網(wǎng)絡編程三要素及通信程序詳解

    這篇文章主要介紹了Java網(wǎng)絡編程三要素及通信程序詳解,Java網(wǎng)絡編程是在網(wǎng)絡通信協(xié)議下,實現(xiàn)網(wǎng)絡互連的不同計算機上運行的程序間可以進行數(shù)據(jù)交換,需要的朋友可以參考下
    2023-07-07
  • Java Eclipse中實現(xiàn)快速替換變量

    Java Eclipse中實現(xiàn)快速替換變量

    這篇文章主要介紹了Java Eclipse中實現(xiàn)快速替換變量,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • PowerDesigner連接數(shù)據(jù)庫的實例詳解

    PowerDesigner連接數(shù)據(jù)庫的實例詳解

    這篇文章主要介紹了PowerDesigner連接數(shù)據(jù)庫的實例詳解的相關資料,如有疑問請留言或者到本站社區(qū)交流討論,需要的朋友可以參考下
    2017-10-10
  • SpringMVC適配器模式作用范圍介紹

    SpringMVC適配器模式作用范圍介紹

    適配器這個詞我們應該很熟悉,天天都在使用,手機充電時,電源線頭頭就叫電源適配器,干什么用的呢?把220V電壓轉換成手機充電時使用的電壓,那么適配器是不是很好理解了,下面看一下
    2023-04-04

最新評論

台南县| 门源| 庆城县| 贵南县| 麟游县| 辉南县| 崇阳县| 耒阳市| 嘉黎县| 蒲城县| 沙雅县| 柳林县| 巨鹿县| 泗洪县| 鞍山市| 通州区| 九寨沟县| 夹江县| 黄平县| 金坛市| 宝坻区| 枣阳市| 沁源县| 页游| 蓝田县| 浙江省| 施甸县| 泌阳县| 通江县| 二手房| 东山县| 阳谷县| 秀山| 从江县| 河南省| 佛冈县| 太白县| 报价| 栾城县| 鄂托克旗| 上杭县|