ShardingSphere学习笔记
1、什么是ShardingSphere?
ShardingSphere起源:说起ShardingSphere还是用从Sharding-JDBC说起,Sharding-JDBC 最早是当当网内部使用的一款分库分表框架,到2017年的时候才开始对外开源,随着功能完善改名为ShardingSphere,ShardingSphere由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar这几款独立的产品组成,现在已经是一款比较完善的分表分库框架,后面被Apache基金会收录。
Apache ShardingSphere是一款开源的分布式数据库中间件组成的生态圈。它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar这几款独立的产品组成。这些组件都提供标准化的数据分片、分布式事务和数据库治理功能,可以适用于Java架构、异构语言、容器、云原生等多种多样的应用场景。ShardingSphere的项目演变如图:
Sharding Sphere中文官网:https://shardingsphere.apache.org/index_zh.html
本质:ShardingSphere是关系型数据库中间件,旨在分布式环境下充分利用关系型数据库的计算和存储能力,而不是实现一个全新的关系型数据库
2、ShardingSphere主要组件
- Sharding-JDBC:Sharding-JDBC目前只支持java语言,在java的JDBC层提供拓展的服务,是一款轻量级的Java框架,以jar包形式使用
- Sharding-Proxy:是一款数据库代理组件,提供了数据库二进制协议的服务端版本,用于对异构语言的支持
- Sharding-Sidecar:提供了Kubernetes或者Mesos的云原生数据库代理,以DaemonSet的形式代理所有对数据库的访问
ShardingSphere架构图,图来自官网:
Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar对比:
Sharding-JDBC | Sharding-Proxy | Sharding-Sidecar | |
---|---|---|---|
数据库 | 任意 | MySQL | MySQL |
连接消耗数 | 高 | 低 | 高 |
异构语言 | 仅Java | 任意 | 任意 |
性能 | 性能低 | 性能高 | 性能高 |
去中心化 | 是 | 否 | 是 |
静态入口 | 没有 | 有 | 没有 |
3、ShardingSphere下载
ShardingSphere下载:https://shardingsphere.apache.org/document/current/cn/downloads/
ShardingSphere源码下载:https://github.com/apache/incubator-shardingsphere.git,使用Git工具git clone