转载自:ShardingSphere官网

目录

  一、介绍

    1. Sharding-JDBC

    2. Sharding-Proxy

    3. Sharding-Sidecar(TBD)

    4. 混合架构

  二、功能列表

    1. 数据分片

    2. 分布式事务

    3. 数据库治理

  三、规划线路图

在介绍Sharding-JDBC之前,有必要先介绍下Sharding-JDBC的大家族ShardingSphere。在介绍ShardingSphere之后,相信大家会对ShardingSphere的整体架构以及Sharding-JDBC扮演的角色会有更深的了解。

ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。 他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。

ShardingSphere定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。 它与NoSQL和NewSQL是并存而非互斥的关系。NoSQL和NewSQL作为新技术探索的前沿,放眼未来,拥抱变化,是非常值得推荐的。反之,也可以用另一种思路看待问题,放眼未来,关注不变的东西,进而抓住事物本质。 关系型数据库当今依然占有巨大市场,是各个公司核心业务的基石,未来也难于撼动,我们目前阶段更加关注在原有基础上的增量,而非颠覆。

一、介绍

1. Sharding-JDBC

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

  • 适用于任何基于Java的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。
  • 基于任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid, HikariCP等。
  • 支持任意实现JDBC规范的数据库。目前支持MySQL,Oracle,SQLServer和PostgreSQL。

2. Sharding-Proxy

定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。 目前先提供MySQL版本,它可以使用任何兼容MySQL协议的访问客户端(如:MySQL Command Client, MySQL Workbench等)操作数据,对DBA更加友好。

  • 向应用程序完全透明,可直接当做MySQL使用。
  • 适用于任何兼容MySQL协议的客户端。

3. Sharding-Sidecar(TBD)

定位为Kubernetes或Mesos的云原生数据库代理,以DaemonSet的形式代理所有对数据库的访问。 通过无中心、零侵入的方案提供与数据库交互的的啮合层,即Database Mesh,又可称数据网格。

Database Mesh的关注重点在于如何将分布式的数据访问应用与数据库有机串联起来,它更加关注的是交互,是将杂乱无章的应用与数据库之间的交互有效的梳理。使用Database Mesh,访问数据库的应用和数据库终将形成一个巨大的网格体系,应用和数据库只需在网格体系中对号入座即可,它们都是被啮合层所治理的对象。

  Sharding-JDBC Sharding-Proxy Sharding-Sidecar
数据库 任意 MySQL MySQL
连接消耗数
异构语言 仅Java 任意 任意
性能 损耗低 损耗略高 损耗低
无中心化
静态入口

4. 混合架构

Sharding-JDBC采用无中心化架构,适用于Java开发的高性能的轻量级OLTP应用;Sharding-Proxy提供静态入口以及异构语言的支持,适用于OLAP应用以及对分片数据库进行管理和运维的场景。

ShardingSphere是多接入端共同组成的生态圈。 通过混合使用Sharding-JDBC和Sharding-Proxy,并采用同一注册中心统一配置分片策略,能够灵活的搭建适用于各种场景的应用系统,架构师可以更加自由的调整适合于当前业务的最佳系统架构。

二、功能列表

1. 数据分片

  • 分库 & 分表
  • 读写分离
  • 分片策略定制化
  • 无中心化分布式主键

2. 分布式事务

  • 标准化事务接口
  • XA强一致事务
  • 柔性事务

3. 数据库治理

  • 配置动态化
  • 编排 & 治理
  • 数据脱敏
  • 可视化链路追踪
  • 弹性伸缩(规划中)

三、规划线路图

Sharding-JDBC(一)简介相关推荐

  1. Sharding JDBC分片和读写分离详解

    目录 Sharding Sphere简介 开始使用Sharding JDBC 数据分片 简单示例 Spring Boot示例 代码分析 属性分析 绑定表和广播表 真实表 绑定表 广播表 Shardin ...

  2. Spring boot项目集成Sharding Jdbc

    环境 jdk:1.8 framework: spring boot, sharding jdbc database: MySQL 搭建步骤 在pom 中加入sharding 依赖 <depend ...

  3. Spring boot + Sharding JDBC 分库分表 及 分布式事务处理

    Sharding JDBC 基础概念 Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC.Proxy 和 Sidecar(规划中)这 3 款既能够 ...

  4. Sharding JDBC(四) 分片策略一:标准分片策略StandardShardingStrategy

    目录 一.标准分片策略StandardShardingStrategy 二.StandardShardingStrategy配置实现 分库分表最核心的两点SQL 路由  . SQL 改写 applic ...

  5. sharding jdbc 的雪花算法中的属性worker.id和max.vibration.offset

    雪花算法生成的id总共64位8个字节,结构如下: 符号位 时间位 工作机器标识位 序列位 1位(固定位0) 41位 10位 12位 worker.id sharding jdbc  4.1.1使用雪花 ...

  6. 理解Sharding jdbc原理,看这一篇就够了

    相比于Spring基于AbstractRoutingDataSource实现的分库分表功能,Sharding jdbc在单库单表扩展到多库多表时,兼容性方面表现的更好一点.例如,spring实现的分库 ...

  7. 【MySQL 读写分离】Sharding JDBC + Spring boot 实现数据库读写分离的登录 Demo

    上篇文章我们搭建了 MySQL 数据库主从复制集群 MySQL 搭建主从复制集群~~~ 本篇文章我们利用搭建好的主从复制集群,使用 SpringBoot 结合 Sharding-JDBC 搭建一个小的 ...

  8. SSM项目引入sharding JDBC进行分表

    SSM项目引入sharding JDBC进行分表 注意点: 本次集成sharing-jdbc 4.1.1,由于各个版本差别比较大,配置方式差别也特别大,请根据官方文档进行配置! 官方配置路径:http ...

  9. Sharding jdbc

    一.Sharding Sphere简介 定义:Apache ShardingSphere 是一款开源分布式数据库生态项目,由 JDBC.Proxy 和 Sidecar(规划中) 3 款产品组成.其核心 ...

  10. SpringBoot + Sharding JDBC,一文搞定分库分表、读写分离

    程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 30 分钟. 来自:blog.csdn.net/qq_40378034/article/details/115264837 S ...

最新文章

  1. 【怎样写代码】工厂三兄弟之抽象工厂模式(四):抽象工厂模式
  2. BIOS MCSDK 2.0 User Guide 示例学习
  3. android 5.0 模拟sd卡,如何使用为Android5.0(Lolliop)提供的新的SD卡访问API?
  4. 网盘们打打打起来了(doge)
  5. String.format() 图文详解,写得非常好!
  6. python中将已有链接的视频进行下载
  7. 6 获取数组中最小值_C语言每日一练8——数组中最大值和最小值
  8. 黑客专用Linux发行版Kali Linux发布滚动更新版2016.1
  9. iPhone 13的新对手?小米历史上最好看的手机即将发布
  10. Windows10/Servers 2016的TrustedInstaller权限获取(及乱改System后救砖
  11. UVM——TLM通信机制(port、export、imp + analysis_port)
  12. javascript 的 错误 异常 处理
  13. 计算机网络实验一 验证性实验
  14. python 爬虫小案例 8684网站爬取北京公交路线站点信息。
  15. Mac开发-公证流程记录Notarization-附带脚本
  16. Linux压缩打包命令使用方法
  17. 【LeetCode】279. 完全平方数 【动态规划】【四平方和定理】
  18. 邮政社招笔试题库_中国邮政招聘考试试题及答案--总括版
  19. python中函数的返回值,你了解吗?
  20. 《Head First HTML CSS》读书笔记

热门文章

  1. gradlew wrapper使用下载到本地的gradle.zip文件装配--转
  2. MySQL索引背后的数据结构及算法原理--转
  3. nginx 学习笔记(6) nginx配置文件中的度量单位
  4. 【大数据风控体系】理想大数据风控体系
  5. 【Python】简单的最优算法函数创建
  6. Philip S. Yu 讲的广度学习到底是什么?
  7. [搜索]一种分词的实现(2)
  8. jvm性能调优 - 16案例实战_每日上亿请求量的电商系统 年轻代垃圾回收参数如何优化
  9. Java 8 - 正确高效的使用并行流
  10. 深入理解分布式技术 - Redis 分布式锁解决方案