blob: 9ada6076d648d76652a7c0cbf707c32ed0d5a69d [file] [view]
**Note: The examples had been transferred to [shardingsphere/examples](https://github.com/apache/shardingsphere/tree/master/examples). All tags reserved, but will never be updated any more.**
# 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 of `dev` 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.*
## Before start the example if you want use `dev` branch
Please make sure some dependencies from [shardingsphere](https://github.com/apache/incubator-shardingsphere) and [shardingsphere-spi-impl](https://github.com/OpenSharding/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](https://github.com/apache/incubator-shardingsphere):
```bash
## 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 -Prelease
```
2.download and install [shardingsphere-spi-impl](https://github.com/OpenSharding/shardingsphere-spi-impl):
```bash
## 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-core
│   ├── config-utility
│   ├── example-api
│   ├── example-raw-jdbc
│   ├── example-spring-jpa
│   └── example-spring-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
│   │   └── 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](./sharding-jdbc-example/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](./sharding-jdbc-example/orchestration-example)**
### Best Practice for sharding + distribution-transaction
* 2pc-xa transaction
* base-seata transaction
You can get more detail from **[transaction-example](./sharding-jdbc-example/transaction-example)**
### Best Practice for hint routing
You can get more detail from **[hint-example](./sharding-jdbc-example/other-feature-example/hint-example)**
### Best Practice for data encrypt
You can get more detail from **[encrypt-example](./sharding-jdbc-example/other-feature-example/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.
### [how to use docker to config sharding-jdbc & sharding-proxy](./docker/docker-compose.md) (Optional)