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

ShardingSphere之讀寫(xiě)分離方式

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

ShardingSphere-讀寫(xiě)分離

讀寫(xiě)分離

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

MySQL主從集群

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

創(chuàng)建 user 表

主節(jié)點(diǎn)執(zhí)行見(jiàn)表語(yǔ)句

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é)點(diǎn)刷新查看

項(xiàng)目代碼

復(fù)用之前的 user 表操作代碼即可

讀寫(xiě)分離配置

application.yml

# 主從配置  讀寫(xiě)分離
server:
  port: 8081

spring:
  main:
    # 一個(gè)實(shí)體類對(duì)應(yīng)兩張表,覆蓋
    allow-bean-definition-overriding: true
  shardingsphere:
    datasource:
      names: m1,s1 # 主庫(kù) 從庫(kù)
      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:
          # 分表策略  固定分配到主庫(kù)的user表 即 m1.user
          actual-data-nodes: m1.user
      # 主庫(kù)從庫(kù)規(guī)則定義
      master-slave-rules:
        m1:
            # 主庫(kù)
            master-data-source-name: m1
            # 從庫(kù)
            slave-data-source-names: s1
    props:
      # 打印SQL日志
      sql:
        show: true

測(cè)試結(jié)果

新增測(cè)試

  • 測(cè)試類代碼
@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);
     }
 }
  • 運(yùn)行結(jié)果

操作的必須是主庫(kù) 對(duì)應(yīng)的數(shù)據(jù)源 m1


主庫(kù)查看

從庫(kù)查看

更新測(cè)試修改前

  • 測(cè)試類代碼

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

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

操作的必須是主庫(kù) 對(duì)應(yīng)的數(shù)據(jù)源 m1

查看主庫(kù)

查看從庫(kù)

刪除測(cè)試

刪除 id=5 的記錄

  • 測(cè)試代碼
@Test
void delete() {
    userMapper.deleteById(5);
}
  • 運(yùn)行結(jié)果

操作的必須是主庫(kù) 對(duì)應(yīng)的數(shù)據(jù)源 m1

查看主庫(kù)

查看從庫(kù)

查詢測(cè)試

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

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

操作的必須是從庫(kù) 對(duì)應(yīng)的數(shù)據(jù)源 s1

總結(jié)

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

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

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

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

    SpringBoot啟動(dòng)參數(shù)的實(shí)現(xiàn)

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

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

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

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

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

    SpringBoot Jpa分頁(yè)查詢配置方式解析

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

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

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

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

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

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

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

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

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

最新評(píng)論

睢宁县| 云龙县| 彰化市| 江油市| 华池县| 夹江县| 曲松县| 民县| 阿勒泰市| 泸州市| 德庆县| 明水县| 理塘县| 奉化市| 曲靖市| 康保县| 南阳市| 修文县| 团风县| 南涧| 临江市| 邛崃市| 邓州市| 临武县| 峨山| 阿拉善左旗| 周宁县| 胶州市| 彭州市| 庆安县| 金平| 云阳县| 电白县| 慈溪市| 民乐县| 岑巩县| 仲巴县| 光泽县| 佳木斯市| 鄂尔多斯市| 祁阳县|