shard-jdbc分庫分表的使用

在使用shard-jdbc遇到問題,4.x版本和5.x版本相差很大桂对,配置基本上不能復(fù)用拓春。

  • 在使用4.x的時候,maven倉庫中的最新版本是4.1.1钦听,使用的依賴:
<!-- https://mvnrepository.com/artifact/org.apache.shardingsphere/sharding-jdbc-spring-boot-starter -->
<dependency>
    <groupId>org.apache.shardingsphere</groupId>
    <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
    <version>4.1.1</version>
</dependency>

application.yml配置基本如下:

# 配置分庫分表
spring:
  main:
    # 允許定義相同的bean對象去覆蓋原有的
    allow-bean-definition-overriding: true
  shardingsphere:
    props:
      sql:
        # 打開sql輸出日志
        show: true
    datasource:
      names: ds1
      ds1:
        # type: com.zaxxer.hikari.HikariDataSource
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/test?useUnicode=true&serverTimezone=UTC
        username: root
        password: 123456

    sharding:
      # 未配置分片規(guī)則的表將通過默認(rèn)數(shù)據(jù)源定位
      default-data-source-name: ds1
      tables:
        t_user:
          actual-data-nodes: ds1.t_user_$->{0..1}
          table-strategy:
            standard:
              sharding-column: user_name
              precise-algorithm-class-name: com.test.core.infrastructure.shard.HashShardingAlgorithm
      binding-tables:
        - t_user
      default-database-strategy:
        inline:
          sharding-column: id
          algorithm-expression: ds$->{1}

使用自定義的分片算法:

import org.apache.shardingsphere.api.sharding.standard.PreciseShardingAlgorithm;
import org.apache.shardingsphere.api.sharding.standard.PreciseShardingValue;

import java.util.Collection;

/**
 * @Description 非自增字段通過hash分片
 * @Author jack
 * @Date 2024/9/3 14:25
 */
public class HashShardingAlgorithm implements PreciseShardingAlgorithm<String> {
    @Override
    public String doSharding(Collection<String> availableTargetNames, PreciseShardingValue<String> shardingValue) {
        // 計算用戶名的哈希值洒试,并根據(jù)哈希值選擇分片
        String columnValue = shardingValue.getValue();
        int hashCode = columnValue.hashCode();
        int index = Math.abs(hashCode) % availableTargetNames.size();

        // 返回實際的目標(biāo)表名
        return availableTargetNames.stream().skip(index).findFirst().orElse(null);
    }
}
  • 在使用5.x的時候,maven倉庫中的最新版本是5.2.1朴上,使用的依賴:
<!-- https://mvnrepository.com/artifact/org.apache.shardingsphere/shardingsphere-jdbc-core-spring-boot-starter -->
<dependency>
    <groupId>org.apache.shardingsphere</groupId>
    <artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId>
    <version>5.2.0</version>
</dependency>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末垒棋,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子痪宰,更是在濱河造成了極大的恐慌叼架,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件衣撬,死亡現(xiàn)場離奇詭異乖订,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)具练,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門乍构,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扛点,你說我怎么就攤上這事哥遮。” “怎么了陵究?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵眠饮,是天一觀的道長。 經(jīng)常有香客問我铜邮,道長仪召,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任松蒜,我火速辦了婚禮返咱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘牍鞠。我一直安慰自己咖摹,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布难述。 她就那樣靜靜地躺著萤晴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪胁后。 梳的紋絲不亂的頭發(fā)上店读,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天,我揣著相機(jī)與錄音攀芯,去河邊找鬼屯断。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的殖演。 我是一名探鬼主播氧秘,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼趴久!你這毒婦竟也來了丸相?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤彼棍,失蹤者是張志新(化名)和其女友劉穎灭忠,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體座硕,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡弛作,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了华匾。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片映琳。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖瘦真,靈堂內(nèi)的尸體忽然破棺而出刊头,到底是詐尸還是另有隱情,我是刑警寧澤诸尽,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布原杂,位于F島的核電站,受9級特大地震影響您机,放射性物質(zhì)發(fā)生泄漏穿肄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一际看、第九天 我趴在偏房一處隱蔽的房頂上張望咸产。 院中可真熱鬧,春花似錦仲闽、人聲如沸脑溢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屑彻。三九已至,卻和暖如春顶吮,著一層夾襖步出監(jiān)牢的瞬間社牲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工悴了, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留搏恤,地道東北人违寿。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像熟空,于是被迫代替她去往敵國和親藤巢。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容