欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java基于ShardingSphere實(shí)現(xiàn)分庫(kù)分表的實(shí)例詳解

 更新時(shí)間:2022年03月15日 09:46:15   作者:程序員云帆哥  
ShardingSphere?已于2020年4月16日成為?Apache?軟件基金會(huì)的頂級(jí)項(xiàng)目,?它們均提供標(biāo)準(zhǔn)化的數(shù)據(jù)水平擴(kuò)展、分布式事務(wù)和分布式治理等功能,可適用于如?Java?同構(gòu)、異構(gòu)語(yǔ)言、云原生等各種多樣化的應(yīng)用場(chǎng)景,對(duì)ShardingSphere分庫(kù)分表相關(guān)知識(shí)感興趣的朋友一起看看吧

一、簡(jiǎn)介

  Apache ShardingSphere 是一套開(kāi)源的分布式數(shù)據(jù)庫(kù)解決方案組成的生態(tài)圈,它由 JDBC、Proxy 和 Sidecar(規(guī)劃中)這 3 款既能夠獨(dú)立部署,又支持混合部署配合使用的產(chǎn)品組成。 它們均提供標(biāo)準(zhǔn)化的數(shù)據(jù)水平擴(kuò)展、分布式事務(wù)和分布式治理等功能,可適用于如 Java 同構(gòu)、異構(gòu)語(yǔ)言、云原生等各種多樣化的應(yīng)用場(chǎng)景。

  Apache ShardingSphere 旨在充分合理地在分布式的場(chǎng)景下利用關(guān)系型數(shù)據(jù)庫(kù)的計(jì)算和存儲(chǔ)能力,而并非實(shí)現(xiàn)一個(gè)全新的關(guān)系型數(shù)據(jù)庫(kù)。 關(guān)系型數(shù)據(jù)庫(kù)當(dāng)今依然占有巨大市場(chǎng)份額,是企業(yè)核心系統(tǒng)的基石,未來(lái)也難于撼動(dòng),我們更加注重在原有基礎(chǔ)上提供增量,而非顛覆。

  Apache ShardingSphere 5.x 版本開(kāi)始致力于可插拔架構(gòu),項(xiàng)目的功能組件能夠靈活的以可插拔的方式進(jìn)行擴(kuò)展。 目前,數(shù)據(jù)分片、讀寫(xiě)分離、數(shù)據(jù)加密、影子庫(kù)壓測(cè)等功能,以及 MySQL、PostgreSQL、SQLServer、Oracle 等 SQL 與協(xié)議的支持,均通過(guò)插件的方式織入項(xiàng)目。 開(kāi)發(fā)者能夠像使用積木一樣定制屬于自己的獨(dú)特系統(tǒng)。Apache ShardingSphere 目前已提供數(shù)十個(gè) SPI 作為系統(tǒng)的擴(kuò)展點(diǎn),仍在不斷增加中。

  ShardingSphere 已于2020年4月16日成為 Apache 軟件基金會(huì)的頂級(jí)項(xiàng)目。

二、項(xiàng)目使用

1、引入依賴(lài)

<dependency>
   <groupId>org.apache.shardingsphere</groupId>
    <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
    <version>4.0.0-RC2</version>
</dependency>

2、數(shù)據(jù)庫(kù)

3、實(shí)體類(lèi)

@Data
public class User {
    private Integer id;
    private String name;
    private Integer age;
}

4、mapper

這里用的Mybatis-plus 3.4版本。

@Mapper
public interface UserMapper extends BaseMapper<User> {

}

5、yml配置

spring:
  shardingsphere:
    datasource:
      #數(shù)據(jù)庫(kù)分庫(kù)名
      names: ds0,ds1
      ds0:
        #type為數(shù)據(jù)源,如果是Druid數(shù)據(jù)庫(kù)連接池,可以去改
        type: com.zaxxer.hikari.HikariDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        jdbc-url: jdbc:mysql://localhost:3306/test0?characterEncoding=utf-8&serverTimezone=UTC
        username: root
        password: root
      ds1:
        type: com.zaxxer.hikari.HikariDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        jdbc-url: jdbc:mysql://localhost:3306/test1?characterEncoding=utf-8&serverTimezone=UTC
        username: root
        password: root
    # 分片規(guī)則
    sharding:
      default-database-strategy:
        inline:
          algorithm-expression: ds$->{id%2}
          sharding-column: id
      tables:
        user:
          actual-data-nodes: ds${0..1}.user_${0..2}
          table-strategy:
            inline:
              algorithm-expression: user_${age%2}
              sharding-column: age
    # 在日志中SQL語(yǔ)句
    props:
      sql:
        show: true

6、測(cè)試類(lèi)

@SpringBootTest
class DemoApplicationTests {
    @Resource
    private UserMapper userMapper;

    @Test
    void contextLoads() {
        User user = new User();
        user.setId(1);
        user.setName("666");
        user.setAge(16);
        userMapper.insert(user);
    }

	@Test
    void contextLoads2() {
        User user = new User();
        user.setId(2);
        user.setName("666");
        user.setAge(17);
        userMapper.insert(user);
    }
}

7、數(shù)據(jù)

到此這篇關(guān)于ShardingSphere實(shí)現(xiàn)分庫(kù)分表的文章就介紹到這了,更多相關(guān)ShardingSphere分庫(kù)分表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何使用Jenkins構(gòu)建GIT+Maven項(xiàng)目

    如何使用Jenkins構(gòu)建GIT+Maven項(xiàng)目

    這篇文章主要介紹了如何使用Jenkins構(gòu)建GIT+Maven項(xiàng)目,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • SpringBoot 中常用注解及各種注解作用

    SpringBoot 中常用注解及各種注解作用

    本篇文章將介紹幾種SpringBoot 中常用注解及各個(gè)注解的作用,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-03-03
  • java使用common-fileupload實(shí)現(xiàn)文件上傳

    java使用common-fileupload實(shí)現(xiàn)文件上傳

    這篇文章主要為大家詳細(xì)介紹了java使用common-fileupload實(shí)現(xiàn)文件上傳的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • @Scheduled fixedDelayString 加載properties配置方式

    @Scheduled fixedDelayString 加載properties配置方式

    這篇文章主要介紹了@Scheduled fixedDelayString 加載properties配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java實(shí)現(xiàn)手寫(xiě)一個(gè)線程池的示例代碼

    Java實(shí)現(xiàn)手寫(xiě)一個(gè)線程池的示例代碼

    線程池技術(shù)想必大家都不陌生把,相信在平時(shí)的工作中沒(méi)有少用,而且這也是面試頻率非常高的一個(gè)知識(shí)點(diǎn),那么大家知道它的實(shí)現(xiàn)原理和細(xì)節(jié)嗎?本文就來(lái)通過(guò)手寫(xiě)一個(gè)簡(jiǎn)單的線程池框架,去掌握線程池的基本原理,感興趣的可以學(xué)習(xí)一下
    2022-10-10
  • java音樂(lè)播放器實(shí)現(xiàn)代碼

    java音樂(lè)播放器實(shí)現(xiàn)代碼

    這篇文章主要介紹了java音樂(lè)播放器的實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 解讀CompletableFuture的底層原理

    解讀CompletableFuture的底層原理

    本文探討了Java8中CompletableFuture的原理和應(yīng)用,詳解其異步編程能力、工作機(jī)制及實(shí)際使用方法,CompletableFuture通過(guò)鏈?zhǔn)秸{(diào)用和狀態(tài)管理優(yōu)化異步任務(wù),提高Java應(yīng)用的效率和性能
    2024-09-09
  • Java中使用JavaScript腳本的方法步驟

    Java中使用JavaScript腳本的方法步驟

    這篇文章主要介紹了Java中使用JavaScript腳本的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 基于java實(shí)現(xiàn)停車(chē)場(chǎng)管理系統(tǒng)

    基于java實(shí)現(xiàn)停車(chē)場(chǎng)管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了基于java實(shí)現(xiàn)停車(chē)場(chǎng)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • mybatis中oracle實(shí)現(xiàn)分頁(yè)效果實(shí)例代碼

    mybatis中oracle實(shí)現(xiàn)分頁(yè)效果實(shí)例代碼

    實(shí)現(xiàn)分頁(yè)的方式有很多,但常用的是通過(guò)SQL來(lái)顯示分頁(yè)。這篇文章主要介紹了mybatis中oracle實(shí)現(xiàn)分頁(yè)效果實(shí)例代碼,有興趣的可以了解一下。
    2017-04-04

最新評(píng)論