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

使用ShardingSphere-Proxy實(shí)現(xiàn)分表分庫(kù)

 更新時(shí)間:2022年02月18日 09:57:30   作者:Run2948  
這篇文章介紹了使用ShardingSphere-Proxy實(shí)現(xiàn)分表分庫(kù)的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

參考:Sharding-Proxy的基本功能使用

1. 環(huán)境準(zhǔn)備

2. 數(shù)據(jù)庫(kù)腳本準(zhǔn)備

# 創(chuàng)建商品數(shù)據(jù)庫(kù)
CREATE DATABASE IF NOT EXISTS `products` DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
# 創(chuàng)建商品代理數(shù)據(jù)庫(kù)
CREATE DATABASE IF NOT EXISTS `products-proxy` DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;

# 創(chuàng)建商品秒殺表
CREATE TABLE IF NOT EXISTS `seckills` (
	`Id` INT(11) NOT NULL AUTO_INCREMENT,
	`SeckillType` INT(11) NOT NULL,
	`SeckillName` TEXT NULL,
	`SeckillUrl` TEXT NULL,
	`SeckillPrice` DECIMAL(18, 2) NOT NULL,
	`SeckillStock` INT(11) NOT NULL,
	`SeckillPercent` TEXT NULL,
	`TimeId` INT(11) NOT NULL,
	`ProductId` INT(11) NOT NULL,
	`SeckillLimit` INT(11) NOT NULL,
	`SeckillDescription` TEXT NULL,
	`SeckillIstop` INT(11) NOT NULL,
	`SeckillStatus` INT(11) NOT NULL,
PRIMARY KEY (`Id`),
INDEX `ProductId` (`ProductId`)
) COLLATE = 'utf8mb4_general_ci' ENGINE = INNODB AUTO_INCREMENT = 2;

# 插入秒殺商品數(shù)據(jù)
INSERT INTO `seckills`(`Id`, `SeckillType`, `SeckillName`, `SeckillUrl`, `SeckillPrice`, `SeckillStock`, `SeckillPercent`, `TimeId`, `ProductId`, `SeckillLimit`, `SeckillDescription`, `SeckillIstop`, `SeckillStatus`) VALUES (1, 1, '22', 'https://img2020.cnblogs.com/blog/1191201/202007/1191201-20200720143227139-1714696954.png', 12.00, 2222, '1', 3, 1, 1, 'iphone6是最好的', 1, 1);

INSERT INTO `seckills`(`Id`, `SeckillType`, `SeckillName`, `SeckillUrl`, `SeckillPrice`, `SeckillStock`, `SeckillPercent`, `TimeId`, `ProductId`, `SeckillLimit`, `SeckillDescription`, `SeckillIstop`, `SeckillStatus`) VALUES (2, 1, '22', 'https://img2020.cnblogs.com/blog/1191201/202007/1191201-20200720143227139-1714696954.png', 12.00, 2222, '1', 3, 2, 1, 'iphone6是最好的', 1, 1);

INSERT INTO `seckills`(`Id`, `SeckillType`, `SeckillName`, `SeckillUrl`, `SeckillPrice`, `SeckillStock`, `SeckillPercent`, `TimeId`, `ProductId`, `SeckillLimit`, `SeckillDescription`, `SeckillIstop`, `SeckillStatus`) VALUES (3, 1, '22', 'https://img2020.cnblogs.com/blog/1191201/202007/1191201-20200720143227139-1714696954.png', 12.00, 2222, '1', 3, 3, 1, 'iphone6是最好的', 1, 1);

INSERT INTO `seckills`(`Id`, `SeckillType`, `SeckillName`, `SeckillUrl`, `SeckillPrice`, `SeckillStock`, `SeckillPercent`, `TimeId`, `ProductId`, `SeckillLimit`, `SeckillDescription`, `SeckillIstop`, `SeckillStatus`) VALUES (4, 1, '22', 'https://img2020.cnblogs.com/blog/1191201/202007/1191201-20200720143227139-1714696954.png', 12.00, 2222, '1', 3, 4, 1, 'iphone6是最好的', 1, 1);

3. 配置 ShardingSphere-Proxy

  • 解壓 ShardingSphere 到 apache-shardingsphere-4.1.1-sharding-proxy-bin 文件夾

    • 有些 jar 包名稱過長(zhǎng)導(dǎo)致解壓失敗,運(yùn)行時(shí)會(huì)缺包報(bào)錯(cuò),如:

      Starting the Sharding-Proxy ...
      Exception in thread "main" Cannot create property=orchestration for JavaBean=org.apache.shardingsphere.shardingproxy.config.yaml.YamlProxyServerConfiguration@1517365b
       in 'reader', line 24, column 1:
          orchestration:
          ^
      Type org.apache.shardingsphere.orchestration.center.yaml.config.YamlCenterRepositoryConfiguration not present
       in 'reader', line 25, column 3:
            orchestration_ds:
    • 推薦到 linux 系統(tǒng)下通過 tar -zxvf apache-shardingsphere-4.1.1-sharding-proxy-bin.tar.gz 命令解壓

  • 復(fù)制 mysql-connector-java-5.1.49.jar 到 ShardingSphere 的 bin 目錄中

  • 修改 conf 目錄下的 config-sharding.yaml 配置文件:

    # 3. 創(chuàng)建客戶端連接庫(kù)
    schemaName: products-proxy
    
    # 1. 設(shè)置 MySQL 數(shù)據(jù)源
    dataSources:
      ds:
        url: jdbc:mysql://127.0.0.1:3306/products?serverTimezone=UTC&useSSL=false
        username: root
        password: 1010
        connectionTimeoutMilliseconds: 30000
        idleTimeoutMilliseconds: 60000
        maxLifetimeMilliseconds: 1800000
        maxPoolSize: 50
    
    # 2. 設(shè)置分片規(guī)則 - 分表
    shardingRule:
      tables:
        seckills: # 邏輯表名
          actualDataNodes: ds.seckills_${0..1} # 分 2 張表
          tableStrategy: # 分表策略
            inline:
              shardingColumn: ProductId # 分表字段
              algorithmExpression: seckills_${ProductId % 2} # 對(duì) ProductId 取模分表
  • 修改 conf 目錄下的 server.yaml 配置文件:

    authentication:
      users:
        root:
          password: 123456
        sharding:
          password: sharding 
          authorizedSchemas: products-proxy
    
    props:
      max.connections.size.per.query: 1
      acceptor.size: 16  # The default value is available processors count * 2.
      executor.size: 16  # Infinite by default.
      proxy.frontend.flush.threshold: 128  # The default value is 128.
        # LOCAL: Proxy will run with LOCAL transaction.
        # XA: Proxy will run with XA transaction.
        # BASE: Proxy will run with B.A.S.E transaction.
      proxy.transaction.type: LOCAL
      proxy.opentracing.enabled: false
      proxy.hint.enabled: false
      query.with.cipher.column: true
      sql.show: false
      allow.range.query.with.inline.sharding: false
  • 啟動(dòng) ShardingSphere-Proxy

    D:\Program\Java\apache-shardingsphere-4.1.1-sharding-proxy-bin\bin>start.bat
    
    # 通過啟動(dòng)日志查看代理數(shù)據(jù)庫(kù)的默認(rèn)端口是 3307
    
    # 新建 mysql 和  mysql-proxy 兩個(gè)連接備用
  • 在 mysql 連接中,新建 products 和 products-proxy數(shù)據(jù)庫(kù)

  • 刷新 mysql-proxy 連接,就會(huì)看到數(shù)據(jù)庫(kù)已經(jīng)同步過來

  • 打開 mysql-proxy 連接下的 products-proxy 數(shù)據(jù)庫(kù),執(zhí)行創(chuàng)建 seckills 表的語(yǔ)句

  • 打開 mysql 連接下的 products 數(shù)據(jù)庫(kù),就會(huì)發(fā)現(xiàn) sekills_0 和 seckills_1 兩張拆分的表

分表原理解析

  • 根據(jù)什么原理來分表:表的字段值
  • 如何根據(jù)字段值分表:
    • 取模運(yùn)算(整數(shù)類型)
    • hash 運(yùn)算:先對(duì)字符串進(jìn)行 hash 得到一個(gè)值,然后根據(jù) hash 值取模
    • 范圍值:0 ~ 10000,10001 ~ 20000,...

到此這篇關(guān)于使用ShardingSphere-Proxy實(shí)現(xiàn)分表分庫(kù)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java使用黑盒方式模擬實(shí)現(xiàn)內(nèi)網(wǎng)穿透

    Java使用黑盒方式模擬實(shí)現(xiàn)內(nèi)網(wǎng)穿透

    這篇文章主要介紹了Java使用黑盒方式模擬實(shí)現(xiàn)內(nèi)網(wǎng)穿透,內(nèi)網(wǎng)穿透,也即 NAT 穿透,進(jìn)行 NAT 穿透是為了使具有某一個(gè)特定源 IP 地址和源端口號(hào)的數(shù)據(jù)包不被 NAT 設(shè)備屏蔽而正確路由到內(nèi)網(wǎng)主機(jī),需要的朋友可以參考下
    2023-05-05
  • Java 二維碼,QR碼,J4L-QRCode 的資料整理

    Java 二維碼,QR碼,J4L-QRCode 的資料整理

    本文主要介紹Java 中二維碼,QR碼,J4L-QRCode,這里整理了詳細(xì)的資料供大家學(xué)習(xí)參考關(guān)于二維碼的知識(shí),有需要的小伙伴可以參考下
    2016-08-08
  • SpringBoot之控制器的返回值處理方式

    SpringBoot之控制器的返回值處理方式

    這篇文章主要介紹了SpringBoot之控制器的返回值處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Struts2學(xué)習(xí)教程之輸入校驗(yàn)示例詳解

    Struts2學(xué)習(xí)教程之輸入校驗(yàn)示例詳解

    這篇文章主要給大家介紹了關(guān)于Struts2學(xué)習(xí)教程之輸入校驗(yàn)的相關(guān)資料,文中通過示例介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用struts2具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • Java實(shí)現(xiàn)基于token認(rèn)證的方法示例

    Java實(shí)現(xiàn)基于token認(rèn)證的方法示例

    這篇文章主要介紹了Java實(shí)現(xiàn)基于token認(rèn)證的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • java+mysql實(shí)現(xiàn)商品搶購(gòu)功能

    java+mysql實(shí)現(xiàn)商品搶購(gòu)功能

    這篇文章主要為大家詳細(xì)介紹了java+mysql實(shí)現(xiàn)商品搶購(gòu)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Spring中的事務(wù)管理實(shí)例詳解

    Spring中的事務(wù)管理實(shí)例詳解

    這篇文章主要介紹了Spring中的事務(wù)管理,以實(shí)例形式詳細(xì)分析了事務(wù)的概念與特性以及事物管理的具體用法,需要的朋友可以參考下
    2014-11-11
  • 詳細(xì)解讀Hibernate的緩存機(jī)制

    詳細(xì)解讀Hibernate的緩存機(jī)制

    這篇文章主要介紹了詳細(xì)解讀Hibernate的緩存機(jī)制,具有一定參考價(jià)值,這里分享給大家,供大家學(xué)習(xí)參閱。
    2017-10-10
  • 一文掌握J(rèn)VM?Safe?Point

    一文掌握J(rèn)VM?Safe?Point

    關(guān)于?Safe?Point?是?JVM?中很關(guān)鍵的一個(gè)概念,但我估計(jì)有不少同學(xué)不是很懂,于是今天跟大家來深入聊聊?Safe?Point,通過本文學(xué)習(xí)你會(huì)了解什么是?Safe?Point?為啥需要?Safe?Point?Safe?Point?與?Stop?the?World?的關(guān)系?感興趣的朋友一起看看吧
    2022-10-10
  • javaWeb傳收參數(shù)方式總結(jié)示例分析

    javaWeb傳收參數(shù)方式總結(jié)示例分析

    這篇文章主要為大家介紹了javaWeb傳收參數(shù)方式總結(jié)示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08

最新評(píng)論

武乡县| 宁南县| 石嘴山市| 湖南省| 公主岭市| 巍山| 共和县| 西畴县| 武清区| 贵州省| 句容市| 三门峡市| 分宜县| 清水河县| 海安县| 廊坊市| 荔浦县| 西华县| 临沧市| 阳城县| 班戈县| 海林市| 舒兰市| 梁平县| 织金县| 永胜县| 九江县| 松江区| 鲁山县| 新营市| 祁连县| 八宿县| 徐水县| 山东| 历史| 阿拉善左旗| 沙田区| 凌源市| 阿克陶县| 门头沟区| 东兰县|