背景信息

通过 Java API 方式构建运行模式。

参数解释

类名称:org.apache.shardingsphere.infra.config.mode.ModeConfiguration

可配置属性:

名称数据类型说明默认值
typeString运行模式类型
可选配置:Standalone、Cluster
Standalone
repositoryPersistRepositoryConfiguration持久化仓库配置
Standalone 类型使用 StandalonePersistRepositoryConfiguration
Cluster 类型使用 ClusterPersistRepositoryConfiguration

Standalone 持久化配置

类名称:org.apache.shardingsphere.mode.repository.standalone.StandalonePersistRepositoryConfiguration

可配置属性:

名称数据类型说明
typeString持久化仓库类型
propsProperties持久化仓库所需属性

Cluster 持久化配置

类名称:org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepositoryConfiguration

可配置属性:

名称数据类型说明
typeString持久化仓库类型
namespaceString注册中心命名空间
server-listsString注册中心连接地址
propsProperties持久化仓库所需属性

注意事项

  1. 生产环境建议使用集群模式部署。
  2. 集群模式部署推荐使用 ZooKeeper 注册中心。
  3. ZooKeeper 存在配置信息时,则以 ZooKeeper 中的配置为准。

操作步骤

引入Maven 依赖。

  1. <dependency>
  2. <groupId>org.apache.shardingsphere</groupId>
  3. <artifactId>shardingsphere-jdbc</artifactId>
  4. <version>${latest.release.version}</version>
  5. </dependency>

注意:请将 ${latest.release.version} 更改为实际的版本号。

配置示例

Standalone 运行模式

  1. ModeConfiguration modeConfig = createModeConfiguration();
  2. Map<String, DataSource> dataSourceMap = ... // 构建真实数据源
  3. Collection<RuleConfiguration> ruleConfigs = ... // 构建具体规则
  4. Properties props = ... // 构建属性配置
  5. DataSource dataSource = ShardingSphereDataSourceFactory.createDataSource(databaseName, modeConfig, dataSourceMap, ruleConfigs, props);
  6. private ModeConfiguration createModeConfiguration() {
  7. return new ModeConfiguration("Standalone", new StandalonePersistRepositoryConfiguration("JDBC", new Properties()));
  8. }

Cluster 运行模式 (推荐)

  1. ModeConfiguration modeConfig = createModeConfiguration();
  2. Map<String, DataSource> dataSourceMap = ... // 构建真实数据源
  3. Collection<RuleConfiguration> ruleConfigs = ... // 构建具体规则
  4. Properties props = ... // 构建属性配置
  5. DataSource dataSource = ShardingSphereDataSourceFactory.createDataSource(databaseName, modeConfig, dataSourceMap, ruleConfigs, props);
  6. private ModeConfiguration createModeConfiguration() {
  7. return new ModeConfiguration("Cluster", new ClusterPersistRepositoryConfiguration("ZooKeeper", "governance-sharding-db", "localhost:2181", new Properties()));
  8. }

相关参考