ShardingSphere-example
Example for 1.x please see tags in https://github.com/apache/incubator-shardingsphere/tree/${tag}/sharding-jdbc-example
Example for 2.x or 3.x or 4.x please see tags in https://github.com/apache/incubator-shardingsphere-example/tree/${tag}
Need attention
-
Please do not use
dev
branch to run your example, example ofdev
branch is not released yet. -
The manual schema initial script is in
https://github.com/apache/incubator-shardingsphere-example/blob/dev/src/resources/manual_schema.sql
, please execute it before you first run the example. -
Please make sure master-slave data sync on MySQL is running correctly. Otherwise this example will query empty data from slave.
dev
branch
Before start the example if you want use Please make sure some dependencies from shardingsphere and shardingsphere-spi-impl have been installed since some examples depend on that. if you are a newbie for shardingsphere, you could prepare the dependencies as following:
1.download and install shardingsphere:
## download the code of shardingsphere
git clone https://github.com/apache/incubator-shardingsphere.git
## checkout a specific version, example is 4.0.0-RC1
cd incubator-shardingsphere && git checkout 4.0.0-RC1
## install the dependencies
mvn clean install
2.download and install shardingsphere-spi-impl:
## download the code of shardingsphere-spi-impl
git clone https://github.com/OpenSharding/shardingsphere-spi-impl.git
## checkout a specific version, example is 4.0.0-RC1
cd shardingsphere-spi-impl && git checkout 4.0.0-RC1
## install the dependencies
mvn clean install
shardingsphere-example module design
project structure
shardingsphere-example
├── example-common
│ ├── config-utility
│ ├── repository-api
│ ├── repository-jdbc
│ ├── repository-jpa
│ └── repository-mybatis
├── sharding-jdbc-example
│ ├── sharding-example
│ │ ├── sharding-raw-jdbc-example
│ │ ├── sharding-spring-boot-jpa-example
│ │ ├── sharding-spring-boot-mybatis-example
│ │ ├── sharding-spring-namespace-jpa-example
│ │ └── sharding-spring-namespace-mybatis-example
│ ├── orchestration-example
│ │ ├── orchestration-raw-jdbc-example
│ │ ├── orchestration-spring-boot-example
│ │ └── orchestration-spring-namespace-example
│ ├── transaction-example
│ │ ├── transaction-2pc-xa-example
│ │ └──transaction-base-seata-example
│ ├── other-feature-example
│ │ ├── hint-example
│ │ ├── broadcast-example
│ │ └── encrypt-example
├── sharding-proxy-example
│ └── sharding-proxy-boot-mybatis-example
└── src/resources
└── manual_schema.sql
Best practice for sharding data
- sharding databases
- sharding tables
- sharding databases and tables
- master-slave
- sharding & master-slave
You can get more detail from sharding-example
Best practice for sharding + orchestration
- using local configuration file for zookeeper/etcd & sharding
- using register center(zookeeper/etcd)'s configuration for sharding
You can get more detail from orchestration-example
Best Practice for sharding + distribution-transaction
- 2pc-xa transaction
- base-seata transaction
You can get more detail from transaction-example
Best Practice for hint routing
You can get more detail from hint-example
Best Practice for broadcast table
You can get more detail from broadcast-table-example
Best Practice for data encrypt
You can get more detail from encrypt-example
Best Practice for APM
We will add APM example recently.
Best Practice for sharding-proxy.
We prefer to add a docker base example recently.