运行部署

部署启动

  1. 执行以下命令,编译生成 ShardingSphere-Proxy 二进制包:
  1. git clone --depth 1 https://github.com/apache/shardingsphere.git
  2. cd shardingsphere
  3. mvn clean install -Dmaven.javadoc.skip=true -Dcheckstyle.skip=true -Drat.skip=true -Djacoco.skip=true -DskipITs -DskipTests -Prelease

发布包:

  • /shardingsphere-distribution/shardingsphere-proxy-distribution/target/apache-shardingsphere-${latest.release.version}-shardingsphere-proxy-bin.tar.gz

或者通过下载页面获取安装包。

Scaling还是实验性质的功能,建议使用master分支最新版本,点击此处下载每日构建版本

  1. 解压缩 proxy 发布包,修改配置文件conf/config-sharding.yaml。详情请参见proxy启动手册

  2. 修改配置文件 conf/server.yaml,详情请参见模式配置

目前 mode 必须是 Cluster,需要提前启动对应的注册中心。

配置示例:

  1. mode:
  2. type: Cluster
  3. repository:
  4. type: ZooKeeper
  5. props:
  6. namespace: governance_ds
  7. server-lists: localhost:2181
  8. retryIntervalMilliseconds: 500
  9. timeToLiveSeconds: 60
  10. maxRetries: 3
  11. operationTimeoutMilliseconds: 500
  12. overwrite: false
  1. 修改配置文件 conf/config-sharding.yamlscalingNamescaling 部分。

配置项说明:

  1. rules:
  2. - !SHARDING
  3. # 忽略的配置
  4. scalingName: # 启用的弹性伸缩配置名称
  5. scaling:
  6. <scaling-action-config-name> (+):
  7. blockQueueSize: # 数据通道阻塞队列大小
  8. workerThread: # 给全量数据摄取和数据导入使用的工作线程池大小
  9. readBatchSize: # 一次查询操作返回的最大记录数
  10. rateLimiter: # 限流算法
  11. type: # 算法类型。可选项:SOURCE
  12. props: # 算法属性
  13. qps: # QPS属性。适用算法类型:SOURCE
  14. completionDetector: # 作业是否接近完成检测算法。如果不配置,那么系统无法自动进行后续步骤,可以通过 DistSQL 手动操作。
  15. type: # 算法类型。可选项:IDLE
  16. props: # 算法属性
  17. incremental-task-idle-minute-threshold: # 如果增量同步任务不再活动超过一定时间,那么可以认为增量同步任务接近完成。适用算法类型:IDLE
  18. sourceWritingStopper: # 源端停写算法。如果不配置,那么系统会跳过这个步骤。
  19. type: # 算法类型。可选项:DEFAULT
  20. dataConsistencyChecker: # 数据一致性校验算法。如果不配置,那么系统会跳过这个步骤。
  21. type: # 算法类型。可选项:DATA_MATCH, CRC32_MATCH
  22. props: # 算法属性
  23. chunk-size: # 一次查询操作返回的最大记录数
  24. checkoutLocker: # 元数据切换算法。如果不配置,那么系统会跳过这个步骤。
  25. type: # 算法类型。可选项:DEFAULT

配置示例:

  1. rules:
  2. - !SHARDING
  3. # 忽略的配置
  4. scalingName: default_scaling
  5. scaling:
  6. default_scaling:
  7. blockQueueSize: 10000
  8. workerThread: 40
  9. readBatchSize: 1000
  10. rateLimiter:
  11. type: SOURCE
  12. props:
  13. qps: 50
  14. completionDetector:
  15. type: IDLE
  16. props:
  17. incremental-task-idle-minute-threshold: 30
  18. sourceWritingStopper:
  19. type: DEFAULT
  20. dataConsistencyChecker:
  21. type: DATA_MATCH
  22. props:
  23. chunk-size: 1000
  24. checkoutLocker:
  25. type: DEFAULT

以上的 rateLimitercompletionDetectorsourceWritingStopperdataConsistencyCheckercheckoutLocker 都可以通过实现SPI自定义。可以参考现有实现,详情请参见开发者手册#弹性伸缩

  1. 启动 ShardingSphere-Proxy:
  1. sh bin/start.sh
  1. 查看 proxy 日志 logs/stdout.log,看到日志中出现:
  1. [INFO ] [main] o.a.s.p.frontend.ShardingSphereProxy - ShardingSphere-Proxy start success

确认启动成功。

结束

  1. sh bin/stop.sh