<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                # 分庫分表整合案例 >[info] version: jeecgboot 3.4 本文旨在:通過jeecg-system-cloud-start項目集成分庫分表例子,進行講解分庫分表用法 ShardingSphere官方文檔:https://shardingsphere.apache.org/document/current/cn/overview [TOC] ## **準備環境** 1. 數據表:`sys_log0(日志分表1)`,`sys_log1(日志分表2)`拷貝復制系統`sys_log`表即可 2. 數據庫: ` jeecg-boot2`(拷貝jeecg-boot即可,分庫分表使用) ### **示例代碼** 示例代碼在`jeecg-cloud-test-shardingsphere`中編寫,該示例場景用于插入日志時對日志進行分表存放,分表規則是根據日志類型進行取余計算余數為0的存放到`sys_log0`表中,余數為1的存到`sys_log1`表中 ## **單庫分表** 1. 在nacos中新建`jeecg-sharding.yaml`分表配置文件,如下所示 ~~~ spring: shardingsphere: datasource: names: ds0 ds0: driverClassName: com.mysql.cj.jdbc.Driver url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root type: com.alibaba.druid.pool.DruidDataSource props: sql-show: true rules: sharding: binding-tables: sys_log key-generators: snowflake: type: SNOWFLAKE props: worker-id: 123 sharding-algorithms: table-classbased: props: strategy: standard algorithmClassName: org.jeecg.modules.test.sharding.algorithm.StandardModTableShardAlgorithm type: CLASS_BASED tables: sys_log: actual-data-nodes: ds0.sys_log$->{0..1} table-strategy: standard: sharding-algorithm-name: table-classbased sharding-column: log_type ~~~ 2. 修改jeecg-system-cloud-start項目,引入新增的nacos配置 jeecg-sharding.yaml ~~~ - optional:nacos:jeecg-sharding.yaml ~~~ ![](https://img.kancloud.cn/b1/17/b1171cfa81ced5d269f3a8d2119758a0_1766x727.png) > 提醒:引入的配置文件名字要和nacos創建的文件保持一致,不然會報錯。另外注意盡量nacos中的配置盡量不要有中文。 3、引入分庫分表測試模塊 jeecg-cloud-test-shardingsphere ![](https://img.kancloud.cn/aa/61/aa61c83b4e4997e0870638e6cb0e52ba_1536x884.png) 4.啟動成功后瀏覽器輸入http://localhost:9999 打開接口文檔如下圖 ![](https://img.kancloud.cn/90/77/9077d07f60fd20bd04c35d057aca92fd_1496x837.png) 如下代碼批量插入10條數據,根據分配規則logType未奇數的會插入sys_log1表中,logType未偶數的會插入sys_log0表中 ![](https://img.kancloud.cn/da/fa/dafa081ad35364d533e0a1362e714f2b_996x576.png) 測試結果如下 ![](https://img.kancloud.cn/50/65/5065e2c2a88f3fd98ed51b528279eb27_976x315.png) ![](https://img.kancloud.cn/cf/9e/cf9e5bac48000e0f0f510b86a0770acd_984x264.png) ## **分庫分表** 1. 在nacos中新建`jeecg-sharding-multi.yaml` 分庫配置文件 ~~~ spring: shardingsphere: datasource: names: ds0,ds1 ds0: driverClassName: com.mysql.cj.jdbc.Driver url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai type: com.alibaba.druid.pool.DruidDataSource username: root password: root ds1: driverClassName: com.mysql.cj.jdbc.Driver url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot2?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai type: com.alibaba.druid.pool.DruidDataSource username: root password: root props: sql-show: true rules: replica-query: load-balancers: round-robin: type: ROUND_ROBIN props: default: 0 data-sources: prds: primary-data-source-name: ds0 replica-data-source-names: ds1 load-balancer-name: round_robin sharding: binding-tables: - sys_log key-generators: snowflake: type: SNOWFLAKE props: worker-id: 123 sharding-algorithms: table-classbased: props: strategy: standard algorithmClassName: org.jeecg.modules.test.sharding.algorithm.StandardModTableShardAlgorithm type: CLASS_BASED database-inline: type: INLINE props: algorithm-expression: ds$->{operate_type % 2} tables: sys_log: actual-data-nodes: ds$->{0..1}.sys_log$->{0..1} database-strategy: standard: sharding-column: operate_type sharding-algorithm-name: database-inline table-strategy: standard: sharding-algorithm-name: table-classbased sharding-column: log_type ~~~ 2. 修改jeecg-system-cloud-start項目,引入新增的nacos配置 jeecg-sharding-multi.yaml ~~~ - optional:nacos:jeecg-sharding-multi.yaml ~~~ ![](https://img.kancloud.cn/fb/8d/fb8da16b55b354f05d13a09babe191bd_1559x826.png) 3.測試插入和查詢接口 ![](https://img.kancloud.cn/fc/a1/fca111b06bc87b3dc0947525c1aedbec_1444x993.png) 示例代碼: ![](https://img.kancloud.cn/f3/6b/f36b84129280ccfe04a78c8e84ba5ff6_1229x1073.png) 4.測試結果如下,可以看到operate_type%2==0的進入了`jeecg-boot 庫(ds0)`,operate_type%2==1的進入了`jeecg-boot2庫(ds1)` ![](https://img.kancloud.cn/6b/f0/6bf0b5b7f51047d7052e7cfbd129424d_1024x261.png) ![](https://img.kancloud.cn/f0/63/f06304fde180e39af00a72541ea6ba2a_935x252.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看