<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          TSharding-ClientMybatis 分庫分表組件

          聯(lián)合創(chuàng)作 · 2023-09-30 20:47

          TSharding 是 應(yīng)用于蘑菇街交易平臺的一個簡易 sharding 組件,也是一個 Mybatis 分庫分表組件。

          TSharding 組件目標:

          • 很少的資源投入即可開發(fā)完成

          • 支持交易訂單表的Sharding需求,分庫又分表

          • 支持數(shù)據(jù)源路由

          • 支持事務(wù)

          • 支持結(jié)果集合并

          • 支持讀寫分離

          關(guān)鍵類:

          • 測試用例入口 com.mogujie.service.tsharding.test#TShardingTest

          • 默認走 Master 庫的前綴命名 com.mogujie.trade.tsharding.route.orm.base.ReadWriteSplittingContextInitializer.DEFAULT_WRITE_METHOD_NAMES

          • SQL增強 com.mogujie.trade.tsharding.route.orm.MapperResourceEnhancer.enhancedShardingSQL

          TSharding 組件接入過程:

          • 引入TSharding JAR 包

          • 配置所有分庫的 JDBC 連接信息

          • Mybatis Mapper 方法參數(shù)增加 ShardingOrderPara/ShardingBuyerPara/ShardingSellerPara 注解

          • 批量查詢增加結(jié)果集合并邏輯

          測試用例:

          跑測試用例之前先建庫建表結(jié)構(gòu);理論上是8個庫,512張表,每個庫64張表。如果僅僅是跑測試用例,執(zhí)行下面的sql就可以跑通:

          create database trade0000;
          create database trade0001;
          create database trade0002;
          create database trade0003;
          create database trade0004;
          create database trade0005;
          create database trade0006;
          create database trade0007;
          create database trade;
          use trade0001;
          CREATE TABLE `TradeOrder0064` (
            `orderId` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '訂單ID',
            `buyerUserId` bigint(20) unsigned NOT NULL COMMENT '買家的userId',
            `sellerUserId` bigint(20) unsigned NOT NULL COMMENT '賣家的userId',
            `shipTime` int(11) unsigned DEFAULT '0' COMMENT '發(fā)貨時間',
            PRIMARY KEY (`orderId`)
          ) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8mb4 COMMENT='訂單信息表';
          INSERT INTO `TradeOrder0064` (`orderId`, `buyerUserId`, `sellerUserId`, `shipTime`)
          VALUES
              (50000280834672, 1234567, 2345678, 12345678);
          瀏覽 34
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久久久久日产精品 | 在线操b视频 | 欧美黑人操逼网 | 91这里只有精品 | 午夜福利一区二区 |