![](https://img-blog.csdnimg.cn/direct/b5405dee625f4680a3c5eff2bf983260.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Sharding Sphere 5.x
文章平均质量分 95
本专栏主要讲解读写分离、分库分表、分布式事务、多数据源、分片算法、数据脱敏、数据加密等内容,从入门到进阶,再到源码分析,最后进行项目实战。由浅入深,由纲及目,不仅仅是学会,更重要的是让您理解并实际应用。
云烟成雨TD
一个追求有道有术的非典型程序员
展开
-
ShardingSphere 5.x 系列【30】影子库
全链路压测是一项复杂而庞大的工作。 需要各个微服务、中间件之间配合与调整,以应对不同流量以及压测标识的透传。 通常会搭建一整套压测平台以适用不同测试计划。 在数据库层面需要做好数据隔离,为了保证生产数据的可靠性与完整性,需要将压测产生的数据路由到压测环境数据库,防止压测数据对生产数据库中真实数据造成污染。 这就要求业务应用在执行 SQL 前,能够根据透传的压测标识,做好数据分类,将相应的 SQL 路由到与之对应的数据源。原创 2024-05-06 14:03:31 · 277 阅读 · 1 评论 -
ShardingSphere 5.x 系列【29】 数据分片原理之结果归并
将从各个数据节点获取的多数据结果集,组合成为一个结果集并正确的返回至请求客户端,称为结果归并。ShardingSphere 支持的结果归并从功能上分为遍历、排序、分组、分页和聚合 5 种类型,它们是组合而非互斥的关系。原创 2024-05-06 14:02:37 · 59 阅读 · 0 评论 -
ShardingSphere 5.x 系列【28】 数据分片原理之 SQL 执行
ShardingSphere 采用一套自动化的执行引擎,负责将路由和改写完成之后的真实 SQL 安全且高效发送到底层数据源执行。 并不是简单地将 SQL 通过 JDBC 直接发送至数据源执行,也并非直接将执行请求放入线程池去并发执行。它更关注平衡数据源连接创建以及内存占用所产生的消耗,以及最大限度地合理利用并发等问题。原创 2024-04-29 09:32:13 · 93 阅读 · 0 评论 -
ShardingSphere 5.x 系列【27】 数据分片原理之 SQL 改写
在ShardingSphere中我们编写SQL时,都是面向单个的逻辑库表,而不需要关心真实的数据库和表是怎么分片的,逻辑SQL并不能直接在真实的数据库中执行,需要借助改写引擎,将其改写为在真实数据库中可以正确执行的SQL,包括正确性改写和优化改写。原创 2024-04-29 09:30:06 · 305 阅读 · 0 评论 -
ShardingSphere 5.x 系列【26】 数据分片原理之 SQL 路由
路由是一种网络功能,指的是数据包从源地址到目的地址的传输路径选择过程。SQL路由是根据逻辑SQL解析出来的上下文、分片策略(分片键+算法),执行时选择匹配的数据源和表的过程。原创 2024-04-26 17:42:43 · 373 阅读 · 2 评论 -
ShardingSphere 5.x 系列【25】 数据分片原理之 SQL 解析
SQL 解析作为分库分表类产品的核心,其性能和兼容性是最重要的衡量指标。 ShardingSphere 的 SQL 解析器经历了 3 代产品的更新迭代。第一代 SQL 解析器为了追求性能与快速实现,在 1.4.x 之前的版本使用 Druid 作为 SQL 解析器。经实际测试,它的性能远超其它解析器。原创 2024-04-26 17:40:53 · 429 阅读 · 0 评论 -
ShardingSphere 5.x 系列【24】集成 Nacos 配置中心
在之前的所有案例中,都是在classpath目录读取ShardingSphere的配置文件,获取数据源和分片规则,在部署到生产环境时,需要使用外部配置,比如接入远程配置中心。在ShardingSphere 5.3.0之前的版本,提供了Spring Boot Starter,配置都是在application.yml文件中,所以只需要使用spring.config.import集成配置中心即可。原创 2024-04-25 16:01:29 · 202 阅读 · 0 评论 -
ShardingSphere 5.x 系列【23】分布式事务 BASE 模式集成 Seata
在上篇文档中,我们介绍了LOCAL 、XA 模式,它们使用起来比较简单,但是并不能完美解决各种分布式事务问题,接下来我们学习ShardingSphere和Seata AT模式的集成。原创 2024-04-22 14:43:13 · 259 阅读 · 0 评论 -
ShardingSphere 5.x 系列【22】分布式事务 LOCAL 、XA 模式
XA协议是一种分布式事务处理规范,由X/Open组织提出,旨在确保多个资源管理器(如数据库)之间的事务一致性。它规范了事务管理器(TM)与资源管理器(RM)之间的通信接口,为分布式环境中的事务处理提供了一个标准的通信桥梁。原创 2024-04-22 14:42:51 · 63 阅读 · 0 评论 -
ShardingSphere 5.x 系列【21】 分片审计
ShardingSphere在5.2.0版本中发布了分片审计功能,针对数据库分片场景下对执行的 SQL 语句进行审计操作,分片审计既可以进行拦截操作,拦截系统配置的非法SQL 语句,也可以对 SQL 语句进行统计操作。原创 2024-03-01 09:30:16 · 138 阅读 · 1 评论 -
ShardingSphere 5.x 系列【20】 数据加密
安全控制一直是治理的重要环节,数据加密属于安全控制的范畴。无论对互联网公司还是传统行业来说,数据安全一直是极为重视和敏感的话题。数据加密是指对某些敏感信息通过加密规则进行数据的变形,实现敏感隐私数据的可靠保护。涉及客户安全数据或者一些商业性敏感数据,如身份证号、手机号、卡号、客户号等个人信息按照相关部门规定,都需要进行数据加密。安全部门规定需将涉及用户敏感信息,例如银行、手机号码等进行加密后存储到数据库,在使用的时候再进行解密处理。原创 2024-03-01 09:29:36 · 81 阅读 · 0 评论 -
ShardingSphere 5.x 系列【19】 数据脱敏
数据脱敏指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。在开发、测试和其它非生产环境以及外包环境中安全地使用脱敏后的真实数据集。例如身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。静态数据脱敏:按照脱敏规则一次性完成大批量数据的变形转换处理动态数据脱敏:按照脱敏规则对于外部申请访问的数据进行即时处理并返回脱敏后的结果。原创 2024-02-29 09:30:50 · 453 阅读 · 0 评论 -
ShardingSphere 5.x 系列【18】自定义类分片算法
自定义类分片算法支持通过配置分片策略类型和算法类名,实现自定义扩展。算法类型为属性名称数据类型说明strategyString分片策略类型,支持STANDARDCOMPLEX或HINT(不区分大小写)String分片算法全限定名。原创 2024-02-29 09:30:17 · 302 阅读 · 0 评论 -
ShardingSphere 5.x 系列【17】复合、HINT分片算法
复合分片算法支持对多个分片健,接口为ComplexKeysShardingAlgorithm,Hint翻译过来是提示、暗示的意思,无需配置分片键,而是在业务代码中手动指定分片健。原创 2024-02-27 17:40:35 · 208 阅读 · 0 评论 -
ShardingSphere 5.x 系列【16】标准分片算法
ShardingSphere内置了很多分片算法,也支持自定义算法。内置算法按照类型可以划分为自动分片算法、标准分片算法、复合分片算法和 Hint 分片算法。接着之前ShardingSphere 5.x 系列【12】自动分片算法本文继续讲解标准分片算法。原创 2024-02-27 17:29:23 · 288 阅读 · 0 评论 -
ShardingSphere 5.x 系列【15】分布式主键生成器
在数据库表设计时,主键ID是必不可少的字段,分库分表后的数据是呈分布式存储的,这时需要确保同一个逻辑表内的不同实际表之间的主键ID全局唯一,以避免跨库主键重复问题。MySQLOracle等传统数据库都提供了主键自动生成技术,数据分片后数据库自增主键会存在跨库主键重复问题,这时需要使用分布式主键解决方案,如UUID等依靠特定算法自生成不重复键,或者通过引入主键生成服务等。提供了内置的分布式主键生成器,例如UUIDSNOWFLAKE等分布式主键生成器,同时提供了分布式主键生成器接口,支持自定义自增主键生成算法。原创 2024-02-23 14:58:16 · 388 阅读 · 0 评论 -
ShardingSphere 5.x 系列【14】广播表、单表
广播表指所有的数据源中都存在的表,表结构及其数据在每个数据库中均完全一致。适用于数据量不大,更新频度低,且需要与海量数据的表进行关联查询的场景。广播表在各分片中数据一致,插入、更新与删除会实时在每一个分片中执行一次对广播表的查询,仅在一个分片中执行任何表都可以与广播表进行JOIN操作单表指所有的分片数据源中仅唯一存在的表, 适用于数据量不大且无需分片的表。原创 2024-02-23 14:57:41 · 122 阅读 · 0 评论 -
ShardingSphere 5.x 系列【13】绑定表
在分库分表后进行关联查询时,需要避免笛卡尔积关联、跨库关联,而绑定表就是为了解决这些问题。绑定表即分片规则一致的一组分片表。 使用绑定表进行多表关联查询时,必须使用分片键进行关联,否则会出现笛卡尔积关联或跨库关联,从而影响查询效率。原创 2024-02-22 09:54:12 · 87 阅读 · 0 评论 -
ShardingSphere 5.x 系列【12】自动分片算法
ShardingSphere内置了很多分片算法,也支持自定义算法。内置算法按照类型可以划分为自动分片算法、标准分片算法、复合分片算法和 Hint 分片算法。自动分片算法的分片逻辑由ShardingSphere自动管理,需要通过配置 autoTables 分片规则进行使用。自动分片算法用于便捷的托管所有数据节点,使用者无需关注真实表的物理分布, 包括取模、哈希、范围、时间等常用分片算法的实现。原创 2024-02-22 09:41:13 · 485 阅读 · 0 评论 -
ShardingSphere 5.x 系列【11】水平分表
水平分表是指通过某个字段(或某几个),根据某种规则将数据分散至多个表中,每个分片仅包含数据的一部分,和水平分库的思路相似,不过对象的重点转移到了表,用于解决了单一表数据量过大的问题,分表一般配合分库一起使用。原创 2024-02-20 16:56:38 · 702 阅读 · 0 评论 -
ShardingSphere 5.x 系列【10】水平分库
水平分库是指按一定规则拆,将同一个库水平复制为多个库,这些库结构、表结构一致,但是存储的数据不同。原创 2024-02-19 10:29:43 · 177 阅读 · 0 评论 -
ShardingSphere 5.x 系列【9】垂直分库
垂直分库是进行分库分表的第一步,一方面各业务专注于自己的库,解决了一定的耦合。另一方面某种程度上分摊了单机数据库的压力,提升了一定的性能。但是没有解决单表数据量过大的问题,也引入了分布式事务、跨库查询等问题。原创 2024-02-19 10:27:45 · 98 阅读 · 0 评论 -
ShardingSphere 5.x 系列【8】数据分片核心概念
表是透明化数据分片的关键概念, ShardingSphere 通过提供多样化的表类型,适配不同场景下的数据分片需求。真实表即数据库中真实存在的物理表,例如将订单数据拆分为10张表,分别是 t_order_0 到 t_order_9,这些表就是真实表,实际存在于数据库中。原创 2024-02-20 16:56:03 · 84 阅读 · 0 评论 -
ShardingSphere 5.x 系列【7】元数据持久化
这些元数据至关重要,例如,通过表结构元数据,对进行了加密的SQL进行正确改写,内核引擎进行SQL 优化等。ShardingSphere 提供了多种元数据持久化方式,支持数据库、ZooKeeper、Nacos、Etcd、Consul等。原创 2024-02-06 11:58:02 · 390 阅读 · 0 评论 -
ShardingSphere 5.x 系列【6】YAML 配置介绍
在使用ShardingSphere-JDBC时,其核心的数据源、分片规则、元数据持久化等配置,是我们需要掌握的重点。在5.3.0及之后的版本不再提供Spring Boot Starter,所以配置方面有较大的变化,目前只支持Java API和YAML 进行配置。原创 2024-02-06 11:53:10 · 447 阅读 · 0 评论 -
ShardingSphere 5.x 系列【5】Spring Boot 3 集成并实现读写分离
读写分离是一种数据库部署架构,将数据库拆分为读库和写库,写库负责处理事务性的增删改操作,读库负责处理查询操作,适用于查询多,写入少的应用系统。读写分离将查询请求均匀的分散到多个从库中,可以提升数据库的吞吐量,可以提高系统的可用性,当宕机一台数据库不影响系统的正常运行。原创 2024-02-04 14:57:27 · 1024 阅读 · 1 评论 -
ShardingSphere 5.x 系列【4】产品介绍
Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款既能够独立部署,又支持混合部署配合使用的产品组成。 它们均提供标准化的数据水平扩展、分布式事务和分布式治理等功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。Apache ShardingSphere 旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。.原创 2024-02-04 14:44:26 · 142 阅读 · 0 评论 -
ShardingSphere 5.x 系列【3】分库分表中间件技术选型
在使用分库分表时,已经有成熟的开源解决方案,接下来我们进行相关技术选型。首先MyCat不考虑,被吹的太过,基本属于没人维护状态,听说该项目现在只是用来引流,加群付费,营销卖课。Vitess国外开源,生态良好,更新频繁,但是只支持MySql,对于现在国内某些有数据库要求的产品来说,不太友好。不是大型公司开源类的,不用考虑,现在经济形势这么差,谁也说不好能走多久,而且大部分都是给商用引流。大厂开源类的,不用考虑,基本都是他们不玩了,然后拿出来乐呵乐呵的。所以最后,只有一个选择,就是,背靠Apache。原创 2024-02-04 14:34:14 · 885 阅读 · 0 评论 -
ShardingSphere 5.x 系列【2】什么是分库分表
无论是互联网大型网站,还是领域分类下的各种软件应用,随着近几十年的快速发展,高并发、海量数据是软件架构设计时需要考虑的问题。软件开发领域的技术也在不断更迭,目前**微服务、大数据、人工智能、云计算**等技术已经成为主流,并不断推动软件开发市场的变革和创新。原创 2024-02-04 14:31:49 · 181 阅读 · 0 评论 -
ShardingSphere 5.x 系列【1】专栏导读
本专栏主要讲解读写分离、分库分表、分布式事务、多数据源、分片算法、数据脱敏、数据加密等内容,从入门到进阶,再到源码分析,最后进行项目实战。由浅入深,由纲及目,不仅仅是学会,更重要的是让您理解并实际应用。官网文档一般较为笼统,最全但不是最细的,很多功能的实现并没有完整案例技术博客很多很杂,很难系统完整的进行学习视频教学更易理解,大多都是培训机构引流,只能稍微入门为了让您系统深入的了解并使用最新之后对于配置有较大改动,本专栏基于最新5.4.0版本最全:详细详解到每一个知识点,而不是只有分库分表。原创 2024-02-04 14:29:59 · 142 阅读 · 0 评论