zoukankan      html  css  js  c++  java
  • ShardingSphere系列(一)——ShardingSphere-JDBC初体验

    Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款既能够独立部署,又支持混合部署配合使用的产品组成。 它们均提供标准化的数据水平扩展、分布式事务和分布式治理等功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。

    ShardingSphere-JDBC定位为轻量级 Java 框架,在 Java 的 JDBC 层提供的额外服务。 它使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架。

    教学项目的当前版本采用5.0.0-beta,该版本可能在国内的maven源上还未同步,建议直接从中央库引入依赖。

    完整的项目示例地址:https://gitee.com/learnhow/shardingsphere/tree/v1.0/jdbc

    重点介绍properties各个配置项的含义

    1.配置多环境的数据源

    spring.shardingsphere.datasource.names=ds0,ds1
    spring.shardingsphere.datasource.ds0.type=com.zaxxer.hikari.HikariDataSource
    spring.shardingsphere.datasource.ds0.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.shardingsphere.datasource.ds0.jdbc-url=jdbc:mysql://192.168.31.127:13306/ds0
    spring.shardingsphere.datasource.ds0.username=root
    spring.shardingsphere.datasource.ds0.password=123456
    spring.shardingsphere.datasource.ds1.type=com.zaxxer.hikari.HikariDataSource
    spring.shardingsphere.datasource.ds1.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.shardingsphere.datasource.ds1.jdbc-url=jdbc:mysql://192.168.31.127:13306/ds1
    spring.shardingsphere.datasource.ds1.username=root
    spring.shardingsphere.datasource.ds1.password=123456

    2.分库规则

    spring.shardingsphere.rules.sharding.tables.t_order.actual-data-nodes=ds$->{0..1}.t_order

    3.声明分片键和分片算法

    spring.shardingsphere.rules.sharding.tables.t_order.database-strategy.standard.sharding-column=order_id
    spring.shardingsphere.rules.sharding.tables.t_order.database-strategy.standard.sharding-algorithm-name=database-inline
    
    spring.shardingsphere.rules.sharding.sharding-algorithms.database-inline.type=INLINE
    spring.shardingsphere.rules.sharding.sharding-algorithms.database-inline.props.algorithm-expression=ds$->{order_id % 2}

    4.配置snowflake作为主键生成算法

    spring.shardingsphere.rules.sharding.tables.t_order.key-generate-strategy.column=order_id
    spring.shardingsphere.rules.sharding.tables.t_order.key-generate-strategy.key-generator-name=snowflake
    
    spring.shardingsphere.rules.sharding.key-generators.snowflake.type=SNOWFLAKE
    spring.shardingsphere.rules.sharding.key-generators.snowflake.props.worker-id=1
    spring.shardingsphere.rules.sharding.key-generators.snowflake.props.max-vibration-offset=1
    spring.shardingsphere.rules.sharding.key-generators.snowflake.props.max-tolerate-time-difference-milliseconds=10
  • 相关阅读:
    ✡ leetcode 169. Majority Element 求出现次数最多的数 --------- java
    ✡ leetcode 168. Excel Sheet Column Title 26进制数字 --------- java
    ✡ leetcode 167. Two Sum II
    ✡ leetcode 166. Fraction to Recurring Decimal 分数转换 --------- java
    javascript XMLHttpRequest对象全面剖析
    百度Echarts使用心得
    纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)
    css阴影--box-shadow的用法
    background小结
    20150103笔记
  • 原文地址:https://www.cnblogs.com/learnhow/p/14966585.html
Copyright © 2011-2022 走看看