简介 #
YAML 提供通过配置文件的方式与 SphereEx-DBPlusEngine-Driver 交互。 配合治理模块一同使用时,持久化在配置中心的配置均为 YAML 格式。
说明: YAML 配置文件支持配置内容超过 3MB。
YAML 配置是最常见的配置方式,可以省略编程的复杂度,简化用户配置。
使用步骤 #
引入 Maven 依赖 #
<dependency>
<groupId>com.sphere-ex</groupId>
<artifactId>shardingsphere-jdbc</artifactId>
<version>${shardingsphere.version}</version>
</dependency>
配置 YAML #
DBPlusEngine-Driver 的 YAML 配置文件支持配置多个逻辑库,每个逻辑库对应一个 YAML 配置文件。如果只有一个逻辑库,可以将包括全局配置和逻辑库的所有配置写在一个 YAML 配置文件中。
单个逻辑库配置 #
DBPlusEngine-Driver 的 YAML 配置文件通过 Schema 名称、运行模式、数据源集合、规则集合以及属性配置组成。
# JDBC 中的数据源的别名。在集群模式,使用该参数联通 DBPlusEngine-Driver 与 DBPlusEngine-Proxy 共同使用。
# 默认值:logic_db
databaseName (?):
mode:
dataSources:
rules:
- !FOO_XXX
...
- !BAR_XXX
...
props:
key_1: value_1
key_2: value_2
模式详情请参见模式配置。
数据源详情请参见数据源配置。
规则详情请参见规则配置。
多个逻辑库配置 #
1.需要指定 global.yaml
用于配置全局属性,如下所示:
mode:
...
authority:
...
props:
key_1: value_1
key_2: value_2
2.配置 database-xxx.yaml
用于配置每个逻辑库的数据源和规则,如下所示:
databaseName:
dataSources:
rules:
- !FOO_XXX
...
- !BAR_XXX
...
3.在 DBPlusEngine-Driver 的 URL 串中指定配置路径和默认逻辑库名称,如下所示:
url: jdbc:shardingsphere:absolutepath:/Users/configDirName?databaseName=sharding_db
构建数据源 #
通过 YamlShardingSphereDataSourceFactory 工厂创建的 ShardingSphereDataSource 实现自 JDBC 的标准接口 DataSource。
File yamlFile = // 指定 YAML 文件路径
DataSource dataSource = YamlShardingSphereDataSourceFactory.createDataSource(yamlFile);
使用数据源 #
使用方式同 Java API。
语法说明 #
!!
表示实例化该类
!
表示自定义别名
-
表示可以包含一个或多个
[]
表示数组,可以与减号相互替换使用
YAML 存储方式 #
绝对路径文件存储 YAML 配置 #
# 1.绝对路径方式读取单个逻辑库配置,需要指定具体的 yaml 配置文件的全路径。
jdbc:shardingsphere:absolutepath:/Users/sphere/config.yaml
# 2.绝对路径方式读取多个逻辑库配置,需要指定 yaml 配置文件所在的目录,目录下必须有 global.yaml 用于指定全局配置。databaseName 属性用于指定默认逻辑库。
jdbc:shardingsphere:absolutepath:/Users/sphere/configDirName?databaseName=sharding_db
类路径文件存储 YAML 配置 #
# 1.类路径方式读取单个逻辑库配置,需要指定具体的 yaml 配置文件所在的类路径。
jdbc:shardingsphere:classpath:config/shardingsphere/config.yml
# 2.类路径方式读取多个逻辑库配置,需要指定 yaml 配置文件所在目录的类路径,目录下必须有 global.yaml 用于指定全局配置。databaseName 属性用于指定默认逻辑库。
jdbc:shardingsphere:classpath:config/configDirName?databaseName=sharding_db
使用 Apollo 存储 YAML 配置 #
当您使用 Apollo 加载器时,需要添加对应的 apollo 的 pom 依赖,apollo 配置方式支持在 apollo 中使用 properties 和 YAML 两种配置格式,目前适配的版本为 1.9.0 , 如下:
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>${apollo.version}</version>
</dependency>
- properties 方式配置示例如下:
# 1.apollo 使用 properties 格式配置单个逻辑库
jdbc:shardingsphere:apollo:test_namespace?configFileFormat=properties&configKey=database-sharding
# 2.apollo 使用 properties 格式配置多个逻辑库,需要通过 configKey 指定配置文件,其中 global 必须包含,用于配置全局属性。databaseName 属性用于指定默认逻辑库。
jdbc:shardingsphere:apollo:test_namespace?configFileFormat=properties&configKey=global,database-sharding,database-encrypt&databaseName=sharding_db
- yaml 方式配置示例如下:
# 1.apollo 使用 yaml 格式配置单个逻辑库
jdbc:shardingsphere:apollo:test_namespace?configFileFormat=yaml
# 2.apollo 使用 yaml 格式配置多个逻辑库,需要配置多个 yaml 的 namespaces,其中 global namespace 必须包含,用于配置全局属性。databaseName 属性用于指定默认逻辑库。
jdbc:shardingsphere:apollo:global,database-sharding,database-sharding2?databaseName=sharding_db