ShardingSphere --shardingJDBC

2024-06-08 01:38

本文主要是介绍ShardingSphere --shardingJDBC,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ShardingJDBC

ShardingJDBC在业务中的定位图

image.png

核心概念

  1. 逻辑表:水平拆分的数据库的相同逻辑和数据库表的总称;
  2. 真实表:在分片的数据库中真实存在的物理表;
  3. 数据节点:数据分片的最小单元,有数据源名称和数据表组成;
  4. 绑定表:分片规则一致的主表和字表
  5. 广播表:也叫公共表,指所有分片数据源中都存在的表,表结构和表中的数据在每个-数据库中都完全一致,例如字典表。
  6. 分片键:用于分片的数据库字段,是将数据库(表)进行水平拆分的关键字段。SQL中若没有分片字段,将会执行全路由,性能较差。
  7. 分片算法:通过分片算法将数据进行分片,支持通过=、between和IN分片。分片算法需要有应用开发者自行实现,灵活度非常高。
  8. 分片策略:真正用于分票操作的是分片键+分片算法,组成分片策略。在ShardingJDBC中一般参与基于Groovy表达式的inline分片策略,通过一个包含分片键的算法表达式来指定分片测了,如t_user$->{u_id&8}标志根据u_id模8,表名称为t_user_0到t_user_7。

ShardingJDBC的分片策略

  1. NoneShardingStrategy

不分片。这种严格来说不算是一种分片策略。

  1. InlineShardingStrategy(最常用的分片策略)
    1. 配置参数:inline.ShardingColumn分片键;inline.algorithmExpression分片表达式
    2. 实现方式:按照分片表达式来进行分片。
  2. StandardShardingStrategy

只支持单分片键的标准分片策略

  1. 配置参数:standard.sharding-column分片键;standard.precise-algorigthm-class-name精确分片算法类名;standard.range-algorigthm-class-name范围分片算法类名。
  1. ComplexShardingStrategy

支持多分片键的复杂分片策略

  1. 配置参数:Complex.sharding-column分片键;standard.precise-algorithm-classname精确分片算法类名;standard.range-algorithm-class-name范围分片算法类名。2. 实现方式:shardingColumn指定分片算法。3. 其中,紧缺分片算法是必须提供的,范围分片算法则是可选的。
  1. HintShardingStrategy

不需要分片键的强制策略。分片策略不与SQL挂钩,而是用程序另行指定。

ShardingSphere的SQL限制

参见官网文档: https://shardingsphere.apache.org/document/current/cn/features/sharding/use-norms/sql/ 文档中详细列出了非常多ShardingSphere目前版本支持和不支持的SQL类型。

分库分表的讨论

  1. 需要分库分表的场景一般是单库容量太大。
  2. 可以先使用缓存,如果缓存无法支持,再进行拆分,数据量控制在1000w以内。

这篇关于ShardingSphere --shardingJDBC的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1040894

相关文章

Apache ShardingSphere数据分片弹性伸缩加解密中间件

Apache ShardingSphere Apache ShardingSphere 是一款分布式 SQL 事务和查询引擎,可通过数据分片、弹性伸缩、加密等能力对任意数据库进行增强。 软件背景 ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互

技能-ShardingSphere做数据库的读写分离,集成到SpringCloud项目中

1.ShardingSphere Sharding参考资料地址 2.集成项目为SpringCloud的项目 3.集成步骤 3.1. POM依赖引入 <!-- 数据库读写分离 --><dependency><groupId>org.apache.shardingsphere</groupId><artifactId>shardingsphere-jdbc-core-spring

重磅!分布式数据库解决方案Apache ShardingSphere毕业成为顶级项目

点击上方“朱小厮的博客”,选择“设为星标” 全球最大的开源软件基金会 Apache 软件基金会(以下简称 Apache)于北京时间 2020年4 月 15 日宣布 Apache ShardingSphere毕业成为 Apache 顶级项目。 ShardingSphere于2018年11月10日捐赠给Apache并启动孵化。之后在导师的指导下,由孵化器管理委员会成员进行经营和孵化,在2020年3

ShardingSphere-JDBC实现数据加解密

一、什么是ShardingSphere?         ShardingSphere定位为轻量级 Java 框架,在 Java 的 JDBC 层提供的额外服务。 它使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架。 Apache ShardingSphere 旨在构建异构数据库上层的标准和生态。

shardingsphere-jdbc-core 5.4.0

shardingsphere-jdbc 版本 <dependency><groupId>org.apache.shardingsphere</groupId><artifactId>shardingsphere-jdbc-core</artifactId><version>5.4.0</version></dependency> 对于5.4.0版本的 shardingsphere-jdb

shardingsphere调优日记

文章目录 一、总括二、连接数调优二、CPU线程的利用率三、服务器内存的利用率 一、总括 调优的几个方面 连接数调优,包含shardingsphere和mysql的连接数。shardingsphere的globle.yaml中线程调优。(充分利用CPU)shardingsphere中的内存调优。(充分利用内存) 二、连接数调优 注意调整maxPoolSize,minPoolS

Shardingsphere-Proxy 5.5.0部署

Shardingsphere-Proxy 5.5.0部署 Shardingsphere系列目录:背景下载安装包Linux解压安装包修改配置文件global.yamldatabase-sharding.yaml 引入数据库驱动启动代理连接代理数据库Navicate工具连接MYSQL客户端连接 Shardingsphere系列目录: 【Springboot 集成 Shardings

springboot集成shardingsphere-分库分表

导入maven依赖,如下 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId

springboot集成shardingsphere

导入maven依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>sp

Apache ShardingSphere实战与核心源码剖析

Apache ShardingSphere实战与核心源码剖析 1.数据库架构演变与分库分表介绍 1.1 海量数据存储问题及解决方案 如今随着互联网的发展,数据的量级也是成指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。 阿里数据中心内景( 阿里、百度、腾讯这样的互联网巨头,数据量据说已经接近EB级) 使用NoS