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
  • 相关阅读:
    C# 读写Excel(NPOI库)
    sql server存储过程回滚事务
    sql server的循环语句
    NopCommerce的autofac的理解
    Django——django连接mysql
    bootstrap
    常用模块杂碎小知识
    常识小知识——(1)
    Django——用户注册并展示出注册信息表案例
    Django——orm概述及在django中使用
  • 原文地址:https://www.cnblogs.com/learnhow/p/14966585.html
Copyright © 2011-2022 走看看