栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

ShardingShpere源码阅读环境搭建

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ShardingShpere源码阅读环境搭建

文章目录
  • 环境准备
    • 安装 JDK
    • 安装 Maven
    • MySQL
  • 准备仓库
  • 导入IDEA
  • 运行Example

环境准备 安装 JDK

使用 JDK 8 或以上版本。

安装 Maven

使用 Maven 3.6 或以上版本。

MySQL

本地安装MySQL。
并且执行ShardingSphere初始化脚本src/resources/manual_schema.sql,后续执行example时依赖该脚本:

DROP SCHEMA IF EXISTS demo_ds;
DROP SCHEMA IF EXISTS demo_ds_0;
DROP SCHEMA IF EXISTS demo_ds_1;

DROP SCHEMA IF EXISTS demo_write_ds;
DROP SCHEMA IF EXISTS demo_read_ds_0;
DROP SCHEMA IF EXISTS demo_read_ds_1;

DROP SCHEMA IF EXISTS demo_write_ds_0;
DROP SCHEMA IF EXISTS demo_write_ds_0_read_0;
DROP SCHEMA IF EXISTS demo_write_ds_0_read_1;
DROP SCHEMA IF EXISTS demo_write_ds_1;
DROP SCHEMA IF EXISTS demo_write_ds_1_read_0;
DROP SCHEMA IF EXISTS demo_write_ds_1_read_1;

DROP SCHEMA IF EXISTS shadow_demo_ds;
DROP SCHEMA IF EXISTS shadow_demo_ds_0;
DROP SCHEMA IF EXISTS shadow_demo_ds_1;

DROP SCHEMA IF EXISTS demo_shadow_write_ds;
DROP SCHEMA IF EXISTS demo_shadow_read_ds;
DROP SCHEMA IF EXISTS demo_read_ds;

CREATE SCHEMA IF NOT EXISTS demo_ds;
CREATE SCHEMA IF NOT EXISTS demo_ds_0;
CREATE SCHEMA IF NOT EXISTS demo_ds_1;

CREATE SCHEMA IF NOT EXISTS demo_write_ds;
CREATE SCHEMA IF NOT EXISTS demo_read_ds_0;
CREATE SCHEMA IF NOT EXISTS demo_read_ds_1;

CREATE SCHEMA IF NOT EXISTS demo_write_ds_0;
CREATE SCHEMA IF NOT EXISTS demo_write_ds_0_read_0;
CREATE SCHEMA IF NOT EXISTS demo_write_ds_0_read_1;
CREATE SCHEMA IF NOT EXISTS demo_write_ds_1;
CREATE SCHEMA IF NOT EXISTS demo_write_ds_1_read_0;
CREATE SCHEMA IF NOT EXISTS demo_write_ds_1_read_1;

CREATE SCHEMA IF NOT EXISTS shadow_demo_ds;
CREATE SCHEMA IF NOT EXISTS shadow_demo_ds_0;
CREATE SCHEMA IF NOT EXISTS shadow_demo_ds_1;

CREATE SCHEMA IF NOT EXISTS demo_shadow_write_ds;
CREATE SCHEMA IF NOT EXISTS demo_shadow_read_ds;
CREATE SCHEMA IF NOT EXISTS demo_read_ds;
准备仓库

将仓库clone到本地。

git clone https://github.com/apache/shardingsphere.git
cd shardingsphere

编译并安装所有模块到 Maven 本地仓库缓存,同时会生成 ANTLR .g4 语法文件对应的解析器 Java 类,这样在 IDE 就不会有相关的编译错误了。

mvn clean install -Dmaven.javadoc.skip=true -Dcheckstyle.skip=true -Drat.skip=true -Djacoco.skip=true -DskipITs -DskipTests -Prelease
导入IDEA

跟普通Maven项目一样,导入IDEA即可,需要在根目录的pom.xml增加module的配置,否则IDEA无法识别到examples中的项目:


        shardingsphere-spi
        shardingsphere-sql-parser
        shardingsphere-distsql
        shardingsphere-db-protocol
        shardingsphere-infra
        shardingsphere-mode
        shardingsphere-kernel
        shardingsphere-jdbc
        shardingsphere-proxy
        shardingsphere-features
        shardingsphere-agent
        shardingsphere-test
        shardingsphere-distribution
		
        examples
    
运行Example

examples中有很多样例,以ShardingRawYamlConfigurationExample为例,需要在src/main/resources/META-INF/sharding-auto-tables.yaml修改数据源:

dataSources:
  ds_0:
    dataSourceClassName: com.zaxxer.hikari.HikariDataSource
    driverClassName: com.mysql.jdbc.Driver
    # 修改为你的数据源
    jdbcUrl: jdbc:mysql://localhost:3306/demo_ds_0?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
    username: root
    password:
  ds_1:
    dataSourceClassName: com.zaxxer.hikari.HikariDataSource
    driverClassName: com.mysql.jdbc.Driver
    # 修改为你的数据源
    jdbcUrl: jdbc:mysql://localhost:3306/demo_ds_1?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
    username: root
    password:

之后直接运行ShardingRawYamlConfigurationExample即可,如看到以下日志,则运行成功:

[INFO ] 2022-05-09 17:25:53,770 --main-- [com.zaxxer.hikari.HikariDataSource] HikariPool-1 - Starting... 
[INFO ] 2022-05-09 17:25:54,098 --main-- [com.zaxxer.hikari.HikariDataSource] HikariPool-1 - Start completed. 
[INFO ] 2022-05-09 17:25:54,107 --main-- [com.zaxxer.hikari.HikariDataSource] HikariPool-2 - Starting... 
[INFO ] 2022-05-09 17:25:54,231 --main-- [com.zaxxer.hikari.HikariDataSource] HikariPool-2 - Start completed. 
[INFO ] 2022-05-09 17:25:56,027 --main-- [ShardingSphere-SQL] Logic SQL: CREATE TABLE IF NOT EXISTS t_order (order_id BIGINT NOT NULL AUTO_INCREMENT, user_id INT NOT NULL, address_id BIGINT NOT NULL, status VARCHAr(50), PRIMARY KEY (order_id)) 
[INFO ] 2022-05-09 17:25:56,027 --main-- [ShardingSphere-SQL] SQLStatement: MySQLCreateTableStatement(containsNotExistClause=true) 
[INFO ] 2022-05-09 17:25:56,028 --main-- [ShardingSphere-SQL] Actual SQL: ds_1 ::: CREATE TABLE IF NOT EXISTS t_order_1 (order_id BIGINT NOT NULL AUTO_INCREMENT, user_id INT NOT NULL, address_id BIGINT NOT NULL, status VARCHAr(50), PRIMARY KEY (order_id)) 
[INFO ] 2022-05-09 17:25:56,028 --main-- [ShardingSphere-SQL] Actual SQL: ds_1 ::: CREATE TABLE IF NOT EXISTS t_order_3 (order_id BIGINT NOT NULL AUTO_INCREMENT, user_id INT NOT NULL, address_id BIGINT NOT NULL, status VARCHAr(50), PRIMARY KEY (order_id)) 
[INFO ] 2022-05-09 17:25:56,028 --main-- [ShardingSphere-SQL] Actual SQL: ds_0 ::: CREATE TABLE IF NOT EXISTS t_order_0 (order_id BIGINT NOT NULL AUTO_INCREMENT, user_id INT NOT NULL, address_id BIGINT NOT NULL, status VARCHAr(50), PRIMARY KEY (order_id))
...
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/871682.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号