7.21 杭州源创会火热报名中,一起来看看移动开发如何紧跟浪潮?
Watch Star Fork

Sharding-Sphere / sharding-sphereJavaApache-2.0GVP

加入码云
与超过 300 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
Sharding-Sphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar这3款相互独立的产品组成。他们均提供标准化的数据分片、读写分离、柔性事务和数据治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。 http://shardingsphere.io/
一键复制 编辑 原始数据 按行查看 历史
README.md 5.76 KB terrymanu 提交于 2018-05-19 00:12 . update readme

Sharding-Sphere - Distributed database middleware ecosphere

License Gitter

Maven Status GitHub release

Build Status Coverage Status OpenTracing-1.0 Badge Skywalking Tracing

Document

EN doc Roadmap

CN doc

Overview

Sharding-Sphere is an open-sourced distributed database middleware solution suite, which is composite by Sharding-JDBC, Sharding-Proxy and Sharding-Sidecar. Those 3 projects provide consistent features which include data sharding, read-write splitting, orchestration and B.A.S.E transaction. They can suitable for various scenario.

Sharding-Sphere is a Relational Database Middleware which reuse capacity of original databases (such as: compute, storage), but make best simplicity and efficiency on distribute environment. Sharding-Sphere do not want implement a new database. It can cooperate with NoSQL and NewSQL. NoSQL and NewSQL are good exploration for technology, they are care about what’s going to change. There is another theory which is care about what’s not going to change. Relational Database still is the biggest percentage of market share, it is difficult to estimate trendy in future. So we are focus about how to enhance with Relational Database now.

Sharding-Sphere Score

Sharding-JDBC

Use JDBC connect databases without redirect cost for java application, best performance for production.

  • ORM compatible. JPA, Hibernate, Mybatis, Spring JDBC Template or JDBC supported.
  • Connection-pool compatible. DBCP, C3P0, BoneCP, Druid supported.
  • Multi SQL-based databases compatible. Any Database supported theoretically. Support MySQL, Oracle, SQLServer and PostgreSQL right now.

Sharding-JDBC Architecture

Sharding-Proxy

Download

It is a database proxy. Deploy as a stateless server, support MySQL protocol for now.

  • Use standard MySQL protocol, application do not care about whether proxy or real MySQL.
  • Any MySQL command line and UI workbench supported in theoretically. MySQL Workbench are fully compatible right now.

Sharding-Proxy Architecture

Sharding-Sidecar(TBD)

It can mesh interactions between applications and databases, must run in Kubernetes or Mesos environment. It is a centre-less solution, can support any languages, we call it as Database Mesh.

Database Mesh is focused on how to connect the distributed data-access-layer and databases together. It pays more attention on interaction, which means the messy interaction among the applications and databases will be effectively orchestrate. By using Database Mesh, applications and databases will form a large grid system, and they just need to be put into the right position on grid system accordingly.

Sharding-Sidecar Architecture

Sharding-JDBC Sharding-Proxy Sharding-Sidecar
Database Any MySQL MySQL
Connections Cost More Less More
Heterogeneous Language Java Only Any Any
Performance Low loss High loss Low loss
Centre-less Yes No No
Static Entry No Yes No

Features

Data sharding

  • Both databases and tables sharding.
  • Aggregation functions, GROUP BY, ORDER BY, LIMIT, OR, and JOIN DQL supported.
  • DML, DDL, TCL and database administrator command supported.
  • Sharding operator =, BETWEEN and IN supported.
  • Sharding algorithm customization and inline expression supported.
  • Force route by hint.
  • Distributed sequence.

Read-write splitting

  • Multiple slaves replica.
  • Data consistency guarantee in same thread.
  • Mix read-write splitting and data sharding.
  • Force route by hint.

BASE Transaction

  • Best efforts delivery transaction.
  • Try confirm cancel transaction (TBD).

Orchestration

  • Configuration center, can refresh dynamically.
  • Circuit breaker.
  • Open tracing supported.

评论 ( 0 )

你可以在登录后,发表评论

11_float_left_people 11_float_left_close