1 Star 0 Fork 957

jackkang / Apache ShardingSphere

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

ShardingSphere - 构建多模数据库上层的标准和生态

官方网站: https://shardingsphere.apache.org/

License GitHub release Build Status codecov snyk Maintainability OpenTracing-1.0 Badge Skywalking Tracing

Twitter Slack Gitter

星评增长时间线 贡献者增长时间线
Stargazers over time Contributor over time

概述

Apache ShardingSphere 产品定位为 Database Plus,旨在构建多模数据库上层的标准和生态。 它关注如何充分合理地利用数据库的计算和存储能力,而并非实现一个全新的数据库。ShardingSphere 站在数据库的上层视角,关注他们之间的协作多于数据库自身。

连接增量可插拔是 Apache ShardingSphere 的核心概念。

  • 连接:通过对数据库协议、SQL 方言以及数据库存储的灵活适配,快速的连接应用与多模式的异构数据库;
  • 增量:获取数据库的访问流量,并提供流量重定向(数据分片、读写分离、影子库)、流量变形(数据加密、数据脱敏)、流量鉴权(安全、审计、权限)、流量治理(熔断、限流)以及流量分析(服务质量分析、可观察性)等透明化增量功能;
  • 可插拔:项目采用微内核 + 三层可插拔模型,使内核、功能组件以及生态对接完全能够灵活的方式进行插拔式扩展,开发者能够像使用积木一样定制属于自己的独特系统。

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

文档:

EN d CN doc

更多信息请参考:https://shardingsphere.apache.org/document/current/cn/overview/

参与贡献:

搭建开发环境和贡献者指南,请参考:https://shardingsphere.apache.org/community/cn/contribute/

社区和支持:

:link: Mailing List. 适合于 Apache 社区相关讨论和版本发布;

:link: GitHub Issues. 适合于设计问题、缺陷报告或者开发相关;

:link: GitHub Discussions. 适合于技术问题咨询和新功能讨论;

:link: Slack channel. 适合于在线交流和线上会议;

:link: Twitter. 随时了解 Apache ShardingSphere 信息。

工作原理:

Apache ShardingSphere 由 JDBC、Proxy 和 Sidecar(规划中)这 3 款既能够独立部署,又支持混合部署配合使用的产品组成。 它们均提供标准化的数据水平扩展、分布式事务和分布式治理等功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。

ShardingSphere-JDBC

Maven Status

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

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

:link: 更多信息请参考官方网站

ShardingSphere-Proxy

Download Docker Pulls

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

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

:link: 更多信息请参考官方网站

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

混合架构

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

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

:link: 更多信息请参考官方网站

解决方案

解决方案/功能 分布式数据库 数据安全 数据库网关 全链路压测
数据分片 数据加密 异构数据库支持 影子库
读写分离 行级权限(TODO) SQL 方言转换(TODO) 可观测性
分布式事务 SQL 审计(TODO)
弹性伸缩 SQL 防火墙(TODO)
高可用

线路规划

Roadmap

如何构建 Apache ShardingSphere:

查看 Wiki 详细了解如何构建 Apache ShardingSphere。

全景图



  

ShardingSphere 进入了CNCF 云原生全景图

# # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # header: license: spdx-id: Apache-2.0 copyright-owner: Apache Software Foundation paths-ignore: - '.github/GIT_TEMPLATE/**' - '.github/ISSUE_TEMPLATE/**' - '.github/PULL_REQUEST_TEMPLATE' - '**/.gitignore' - '.mvn' - 'docs/**' - '**/*.md' - '**/*.json' - '**/*.iml' - '**/*.ini' - 'LICENSE' - 'NOTICE' - '**/release-docs/**' comment: on-failure

简介

本 Gitee 仓库 是 Github 的镜像,有任何 issue 和 pull request,欢迎在 Github 上联系我们。 Github:https://github.com/apache/shardingsphere/ 展开 收起
Java
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/kangjie1209/sharding-sphere.git
git@gitee.com:kangjie1209/sharding-sphere.git
kangjie1209
sharding-sphere
Apache ShardingSphere
master

搜索帮助