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

ShardingSphere 已于2020年4月16日成为 Apache 软件基金会的顶级项目。

1、Sharding-JDBC

ShardingSphere 的前身是 Sharding-JDBC(来自当当网),所以这是整个框架中最为成熟的组件。Sharding-JDBC 的定位是一个轻量级 Java 框架,在 JDBC 层提供了扩展性服务。 JDBC 是一种开发规范,指定了 DataSource、Connection、Statement、PreparedStatement、ResultSet 等一系列接口。而各大数据库供应商通过实现这些接口提供了自身对 JDBC 规范的支持,使得 JDBC 规范成为 Java 领域中被广泛采用的数据库访问标准,Sharding-JDBC是对JDBC的兼容和拓展。

提供了一套与 JDBC 规范完全一致的 API,所以它可以很方便地与遵循 JDBC 规范的各种组件和框架进行无缝集成。例如,用于提供数据库连接的 DBCP、C3P0 等数据库连接池组件,以及用于提供对象-关系映射的 Hibernate、MyBatis 等 ORM 框架。当然,作为一款支持多数据库的开源框架,Sharding-JDBC 支持 MySQL、Oracle、SQLServer 等主流关系型数据库。

2、Sharding-Proxy

ShardingSphere 中的 Sharding-Proxy 组件定位为一个透明化的数据库代理端,所以它是代理服务器分片方案的一种具体实现方式。在代理方案的设计和实现上,Sharding-Proxy 同样充分考虑了兼容性。

Sharding-Proxy 所提供的兼容性首先体现在对异构语言的支持上,为了完成对异构语言的支持,Sharding-Proxy 专门对数据库二进制协议进行了封装,并提供了一个代理服务端组件。其次,从客户端组件上讲,针对目前市面上流行的 Navicat、MySQL Command Client 等客户端工具,Sharding-Proxy 也能够兼容遵循 MySQL 和 PostgreSQL 协议的各类访问客户端。当然,和 Sharding-JDBC 一样,Sharding-Proxy 也支持 MySQL 和 PostgreSQL 等多种数据库。

3、Sharding-Sidecar(TODO)

Sidecar 设计模式受到了越来越多的关注和采用,这个模式的目标是把系统中各种异构的服务组件串联起来,并进行高效的服务治理。ShardingSphere 也基于该模式设计了 Sharding-Sidecar 组件。截止到目前,ShardingSphere 给出了 Sharding-Sidecar 的规划,但还没有提供具体的实现方案。作为 Sidecar 模式的具体实现,我们可以想象 Sharding-Sidecar*的作用就是以 Sidecar 的形式代理所有对数据库的访问。这也是一种兼容性的设计思路,通过无中心、零侵入的方案将分布式的数据访问应用与数据库有机串联起来。

我们可以理解,ShardingSphere为一个兼容原生JDBC规范的分布式数据库解决方案的套件。所在公司好多项目都在用,自己的做的项目也在用,特此想系统的学习下这个开源框架。未完待续。。。

ShardingSphere 简介(一)相关推荐

  1. Shardingsphere 简介

    Shardingsphere 简介 什么是 ShardingSphere? Apache ShardingSphere 是一套开源的分布式数据库增强计算引擎,其通过可插拔架构构建基于数据库之上的生态系 ...

  2. ShardingSphere简介与分表使用

    一.ShardingSphere简介 1.简介 ShardingSphere 已于 2020 年 4 月 16 日成为 Apache 软件基金会的顶级项目. ShardingSphere 是一套开源的 ...

  3. 一、ShardingSphere简介(来自官方文档)

    官方中文文档地址https://shardingsphere.apache.org/document/current/cn/overview/ 简介(来自上面的官网) Apache ShardingS ...

  4. ShardingSphere简介(一)

    概述 什么是Sharding Sphere ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC.Sharding-Proxy和Shardin ...

  5. shardingJdbc专题系列(一)之shardingJdbc简介

    分库分表的概念已经炒了很久了,我也很久没有写博客了,这段确实有点忙,前段时间恰好在公司分享了一下关于shardingJdbc的用法,索性整理成文章,希望能对大家有帮助. 分库分表这种概念,个人认为应该 ...

  6. sharding-jdbc系列(一):概念

    前话 前段时间公司项目比较忙,天天都忙于码代码,最近好不容易项目上线了,后期就是试运行解决线上问题,要闲一些了,看了下公司以前的一些项目,发现其中居然有用到sharding-jdbc,想到以前自己也使 ...

  7. Java后端程序员技术栈

    Java后端程序员技术栈 它可以是知识提纲,便于快速复习与查阅 它也可以是你的学习规划,帮助小白快速了解学Java要走的路(当然你也可以选择搭配我的学习路线一起享用!) 相关链接: <gitee ...

  8. A103_数据库优化_多机优化

    目录 1.内容介绍 2. 分库分表 2.1. 分库分表分析 2.1.1.垂直分表-宽表拆分 2.1.2.垂直分库-按业务分库 2.1.3.水平分表-海量表拆分小表 2.1.4.水平分库-同一业务表拆分 ...

  9. 谷粒商城学习笔记——第一期:项目简介

    一.项目简介 1. 项目背景 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O B2B 模式(Business to Business),是指商家和商家建立的商业关系.如阿里巴巴 B ...

最新文章

  1. 用Tableau画Arc Bar Chart
  2. docker 容器保存为镜像_Docker容器和镜像操作
  3. eclipse插件镜像改为国内镜像
  4. java中一个线程最小优先数_Java线程的优先级
  5. python把浮点数转换成16进制_Python将colorsys RGB坐标转换为十六进制
  6. 《精解Windows8》——1.2 告别开始按钮进入“开始”屏幕时代
  7. UEFI开发探索22 – 环境搭建3(使用UDK2018搭建)
  8. 软件测试相关试题知识点
  9. dedecms中[field:imglink/]图片大小问题解决办法
  10. 苹果收购公司,为什么总是低调而高效---转自百度新闻|DTCHAT
  11. ABAP 数字前导零,去除前导零
  12. 计算机项目教学法探讨,基于项目教学法的非计算机专业计算机教学的设计和探讨...
  13. return 的作用
  14. 病毒木马查杀实战第009篇:QQ盗号木马之手动查杀
  15. 四川企立方:拼多多团购要怎么申请团购点
  16. stm32项目_stm32f103c8t6项目_循迹避障小车完整制作过程_智能小车设计_STM32智能小车教程-循迹-避障-蓝牙遥控-跟随
  17. haproxy 基本搭建 + 高可用集群的搭建
  18. Sentry For React 完整接入详解(2021 Sentry v21.8.x)前方高能预警!三万字,慎入!
  19. 赛扬处理器_首批15瓦四核处理器即将成为历史:英特尔宣布停产4个型号
  20. 反对996,吐槽996,但出路在哪里?

热门文章

  1. matlab 大数,在Matlab中考虑大数,然后得到结果中的数字
  2. C语言:编写程序把你的年龄转换成天数,不考虑闰年。
  3. 国内研发团队普遍常见问题
  4. Flowable实战(三)流程部署管理
  5. ECCDSA加签验签工具类, base64编码
  6. Hadoop Join性能优化
  7. 关于-3db截止频率
  8. USACO 1.3.1 挤牛奶
  9. MYSQL 备份到底怎么办,XTRABACKUP 还是 MEB(2)--mysqlbackup MEB
  10. java 内存不释放_java无法内存释放的问题