Apache ShardingSphere 中文文档 5.0.0-alphaShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar (规划中)这 3 款既能够独立部署,又支持混合部署配合使用的产品组成。它们均提供标准化的数据水平 扩展、分布式事务和分布式治理等功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用 场景。 Apache ShardingSphere 旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并 版本开始致力于可插拔架构,项目的功能组件能够灵活的以可插拔的方式 进行扩展。目前,数据分片、读写分离、数据加密、影子库压测等功能,以及对 MySQL、PostgreSQL、 SQLServer、Oracle 等 SQL 与协议的支持,均通过插件的方式织入项目。开发者能够像使用积木一样定 制属于自己的独特系统。Apache ShardingSphere 目前已提供数十个 SPI 作为系统的扩展点,而且仍在不 断增加中。 ShardingSphere 库(或表),奇数主键的记录放入 1 库(或表),如下图所示。 3.1. 数据分片 9 Apache ShardingSphere document, v5.0.0-beta 水平分片从理论上突破了单机数据量处理的瓶颈,并且扩展相对自由,是分库分表的标准解决方案。 3.1.2 挑战 虽然数据分片解决了性能、可用性以及单点备份恢复等问题,但分布式的架构在获得了收益的同时,也 引入了新的问题。 面对如此散乱的分库分表之0 码力 | 301 页 | 3.44 MB | 1 年前3
Apache ShardingSphere v5.5.0 中文文档可满足业务无需改造,实现平滑业务迁移。 • 运维低成本 在保留原技术栈不变前提下,对 DBA 学习、管理成本低,交互友好。 • 安全稳定 基于成熟数据库底座之上提供增量能力,兼顾安全性及稳定性。 • 弹性扩展 具备计算、存储平滑在线扩展能力,可满足业务多变的需求。 • 开放生态 通过多层次(内核、功能、生态)插件化能力,为用户提供可定制满足自身特殊需求的独有系统。 1.3. 产品优势 2 2 设计哲学 ShardingSphere ,互无感知,多 组件可通过叠加的方式相互配合使用。主要包括数据分片、读写分离、数据加密、影子库等。用户自定义 功能可完全面向 Apache ShardingSphere 定义的顶层接口进行定制化扩展,而无需改动内核代码。 2.3.3 L3 生态层 用于对接和融入现有数据库生态,包括数据库协议、SQL 解析器和存储适配器,分别对应于 Apache Shard‐ ingSphere 以数据库协议提供服务的方式、SQL Apache ShardingSphere 环境。 4.2 集群模式 提供了多个 Apache ShardingSphere 实例之间的元数据共享和分布式场景下状态协调的能力。它能够提 供计算能力水平扩展和高可用等分布式系统必备的能力,集群环境需要通过独立部署的注册中心来存储 元数据和协调节点状态。 在生产环境建议使用集群模式。 10 5 线路规划 11 6 如何参与 ShardingSphere0 码力 | 557 页 | 4.61 MB | 1 年前3
Apache ShardingSphere 中文文档 5.0.0)、流量治理(熔断、限流)以及流量分析(服 务质量分析、可观察性)等透明化增量功能; • 可插拔:项目采用微内核 + 三层可插拔模型,使内核、功能组件以及生态对接完全能够灵活的方式 进行插拔式扩展,开发者能够像使用积木一样定制属于自己的独特系统。 ShardingSphere 已于 2020 年 4 月 16 日成为 Apache 软件基金会的顶级项目。欢迎通过邮件列表参与讨 论。 1 ng (Experimental) 9 3 概念 Apache ShardingSphere 功能十分复杂,有数百模块之多,但众多模块间的概念却简单明了。大部分模块 都是面向这几个概念的横向扩展。 它的概念主要包括:面向独立产品的接入端、面向启动的运行模式、面向使用者操作的 DistSQL 以及面 向开发者的可插拔架构。 本章节将详细阐述 Apache ShardingSphere 相关的概念。 ShardingSphere 中,很多功能实现类的加载方式是通过 SPI(Service Provider Interface)注 入的方式完成的。SPI 是一种为了被第三方实现或扩展的 API,它可以用于实现框架扩展或组件替换。 3.4.2 挑战 可插拔架构对程序架构设计的要求非常高,需要将各个模块相互独立,互不感知,并且通过一个可插拔 内核,以叠加的方式将各种功能组合使用。设计一套将功能开发完全隔离的架构体系,既可以最大限度0 码力 | 385 页 | 4.26 MB | 1 年前3
Apache ShardingSphere 中文文档 5.2.0ShardingSphere 1.1.1 介绍 Apache ShardingSphere 是一款开源的分布式数据库生态项目,由 JDBC 和 Proxy 两款产品组成。其核心 采用微内核 + 可插拔架构,通过插件开放扩展功能。它提供多源异构数据库增强平台,进而围绕其上层 构建生态。 Apache ShardingSphere 设计哲学为 Database Plus,旨在构建异构数据库上层的标准和生态。它关注如 document, v5.2.0 1.1.2 产品功能 特性 定义 数 据 分片 数据分片,是应对海量数据存储与计算的有效手段。ShardingSphere 提供基于底层数据库之 上,可计算与存储水平扩展的分布式数据库解决方案。 分 布 式 事 务 事务能力,是保障数据库完整、安全的关键技术,也是数据库的核心技术之一。ShardingSphere 提供在单机数据库之上的分布式事务能力,可实现跨底层数据源的数据安全。 可满足业务无需改造,实现平滑业务迁移。 • 运维低成本 在保留原技术栈不变前提下,对 DBA 学习、管理成本低,交互友好。 • 安全稳定 基于成熟数据库底座之上提供增量能力,兼顾安全性及稳定性。 • 弹性扩展 具备计算、存储平滑在线扩展能力,可满足业务多变的需求。 • 开放生态 通过多层次(内核、功能、生态)插件化能力,为用户提供可定制满足自身特殊需求的独有系统。 1.1. 什么是 ShardingSphere0 码力 | 449 页 | 5.85 MB | 1 年前3
Apache ShardingSphere 中文文档 5.1.1)、流量治理(熔断、限流)以及流量分析(服 务质量分析、可观察性)等透明化增量功能; • 可插拔:项目采用微内核 + 三层可插拔模型,使内核、功能组件以及生态对接完全能够灵活的方式 进行插拔式扩展,开发者能够像使用积木一样定制属于自己的独特系统。 ShardingSphere 已于 2020 年 4 月 16 日成为 Apache 软件基金会的顶级项目。欢迎通过邮件列表参与讨 论。 1 ng (Experimental) 9 3 概念 Apache ShardingSphere 功能十分复杂,有数百模块之多,但众多模块间的概念却简单明了。大部分模块 都是面向这几个概念的横向扩展。 它的概念主要包括:面向独立产品的接入端、面向启动的运行模式、面向使用者操作的 DistSQL 以及面 向开发者的可插拔架构。 本章节将详细阐述 Apache ShardingSphere 相关的概念。 3.2.4 集群模式 提供了多个 Apache ShardingSphere 实例之间的元数据共享和分布式场景下状态协调的能力。在真实部 署上线的生产环境,必须使用集群模式。它能够提供计算能力水平扩展和高可用等分布式系统必备的能 力。集群环境需要通过独立部署的注册中心来存储元数据和协调节点状态。 3.3 DistSQL 3.3.1 背景 DistSQL(Distributed SQL)是0 码力 | 409 页 | 4.47 MB | 1 年前3
Apache ShardingSphere 中文文档 5.1.0)、流量治理(熔断、限流)以及流量分析(服 务质量分析、可观察性)等透明化增量功能; • 可插拔:项目采用微内核 + 三层可插拔模型,使内核、功能组件以及生态对接完全能够灵活的方式 进行插拔式扩展,开发者能够像使用积木一样定制属于自己的独特系统。 ShardingSphere 已于 2020 年 4 月 16 日成为 Apache 软件基金会的顶级项目。欢迎通过邮件列表参与讨 论。 1 ng (Experimental) 9 3 概念 Apache ShardingSphere 功能十分复杂,有数百模块之多,但众多模块间的概念却简单明了。大部分模块 都是面向这几个概念的横向扩展。 它的概念主要包括:面向独立产品的接入端、面向启动的运行模式、面向使用者操作的 DistSQL 以及面 向开发者的可插拔架构。 本章节将详细阐述 Apache ShardingSphere 相关的概念。 3.2.4 集群模式 提供了多个 Apache ShardingSphere 实例之间的元数据共享和分布式场景下状态协调的能力。在真实部 署上线的生产环境,必须使用集群模式。它能够提供计算能力水平扩展和高可用等分布式系统必备的能 力。集群环境需要通过独立部署的注册中心来存储元数据和协调节点状态。 3.3 DistSQL 3.3.1 背景 DistSQL(Distributed SQL)是0 码力 | 406 页 | 4.40 MB | 1 年前3
Apache ShardingSphere 中文文档 5.4.1可满足业务无需改造,实现平滑业务迁移。 • 运维低成本 在保留原技术栈不变前提下,对 DBA 学习、管理成本低,交互友好。 • 安全稳定 基于成熟数据库底座之上提供增量能力,兼顾安全性及稳定性。 • 弹性扩展 具备计算、存储平滑在线扩展能力,可满足业务多变的需求。 • 开放生态 通过多层次(内核、功能、生态)插件化能力,为用户提供可定制满足自身特殊需求的独有系统。 1.3. 产品优势 2 2 设计哲学 ShardingSphere ,互无感知,多 组件可通过叠加的方式相互配合使用。主要包括数据分片、读写分离、数据加密、影子库等。用户自定义 功能可完全面向 Apache ShardingSphere 定义的顶层接口进行定制化扩展,而无需改动内核代码。 2.3.3 L3 生态层 用于对接和融入现有数据库生态,包括数据库协议、SQL 解析器和存储适配器,分别对应于 Apache Shard‐ ingSphere 以数据库协议提供服务的方式、SQL Apache ShardingSphere 环境。 4.2 集群模式 提供了多个 Apache ShardingSphere 实例之间的元数据共享和分布式场景下状态协调的能力。它能够提 供计算能力水平扩展和高可用等分布式系统必备的能力,集群环境需要通过独立部署的注册中心来存储 元数据和协调节点状态。 在生产环境建议使用集群模式。 10 5 线路规划 11 6 如何参与 ShardingSphere0 码力 | 530 页 | 4.49 MB | 1 年前3
Apache ShardingSphere 中文文档 5.3.2可满足业务无需改造,实现平滑业务迁移。 • 运维低成本 在保留原技术栈不变前提下,对 DBA 学习、管理成本低,交互友好。 • 安全稳定 基于成熟数据库底座之上提供增量能力,兼顾安全性及稳定性。 • 弹性扩展 具备计算、存储平滑在线扩展能力,可满足业务多变的需求。 • 开放生态 通过多层次(内核、功能、生态)插件化能力,为用户提供可定制满足自身特殊需求的独有系统。 1.3. 产品优势 2 2 设计哲学 ShardingSphere ,互无感知,多 组件可通过叠加的方式相互配合使用。主要包括数据分片、读写分离、数据加密、影子库等。用户自定义 功能可完全面向 Apache ShardingSphere 定义的顶层接口进行定制化扩展,而无需改动内核代码。 2.3.3 L3 生态层 用于对接和融入现有数据库生态,包括数据库协议、SQL 解析器和存储适配器,分别对应于 Apache Shard‐ ingSphere 以数据库协议提供服务的方式、SQL Apache ShardingSphere 环境。 4.2 集群模式 提供了多个 Apache ShardingSphere 实例之间的元数据共享和分布式场景下状态协调的能力。它能够提 供计算能力水平扩展和高可用等分布式系统必备的能力,集群环境需要通过独立部署的注册中心来存储 元数据和协调节点状态。 在生产环境建议使用集群模式。 10 5 线路规划 11 6 如何参与 ShardingSphere0 码力 | 508 页 | 4.44 MB | 1 年前3
Apache ShardingSphere 中文文档 5.1.2)、流量治理(熔断、限流)以及流量分析(服 务质量分析、可观察性)等透明化增量功能; • 可插拔:项目采用微内核 + 三层可插拔模型,使内核、功能组件以及生态对接完全能够灵活的方式 进行插拔式扩展,开发者能够像使用积木一样定制属于自己的独特系统。 ShardingSphere 已于 2020 年 4 月 16 日成为 Apache 软件基金会的顶级项目。欢迎通过邮件列表参与讨 论。 1 ShardingSphere-Proxy 9 3 概念 Apache ShardingSphere 功能十分复杂,有数百模块之多,但众多模块间的概念却简单明了。大部分模块 都是面向这几个概念的横向扩展。 它的概念主要包括:面向独立产品的接入端、面向启动的运行模式、面向使用者操作的 DistSQL 以及面 向开发者的可插拔架构。 本章节将详细阐述 Apache ShardingSphere 相关的概念。 3.2.4 集群模式 提供了多个 Apache ShardingSphere 实例之间的元数据共享和分布式场景下状态协调的能力。在真实部 署上线的生产环境,必须使用集群模式。它能够提供计算能力水平扩展和高可用等分布式系统必备的能 力。集群环境需要通过独立部署的注册中心来存储元数据和协调节点状态。 源码:https://github.com/apache/shardingsphere/tree0 码力 | 446 页 | 4.67 MB | 1 年前3
传智播客 mybatis 框架课程讲义的自增原理执行 完 insert 语句之后才将主键生成,所以这里 selectKey 的执行顺序为 after resultType:返回的主键是什么类型 LAST_INSERT_ID():是 mysql 的函数,返回 auto_increment 自增列新记录 id 值。 1.6.7.2.4 Mysql 使用 uuid 实现主键 需要增加通过 select uuid()得到 uuid 值扩展性良好的软件架构 都是好架构,所以框架只有适合才是最好。 2 Dao 开发方法 使用 Mybatis 开发 Dao,通常有两个方法,即原始 Dao 开发方法和 Mapper 接口开发方 法。 象传递输入参数。 4.1.4.1定义包装对象 定义包装对象将查询条件(pojo)以类组合的方式包装起来。 public class QueryVo { private User user; //自定义用户扩展类 private UserCustom userCustom; 4.1.4.2mapper.xml 映射文件 说明:mybatis 底层通过 ognl 从 pojo 中获取属性值:#{user 0 码力 | 75 页 | 1.16 MB | 1 年前3
共 16 条
- 1
- 2













