广播表 #
广播表 YAML 配置方式具有非凡的可读性,通过 YAML 格式,能够快速地理解广播表配置, DBPlusEngine 会根据 YAML 配置,自动完成 ShardingSphereDataSource 对象的创建,减少用户不必要的编码工作。
参数解释 #
rules:
- !BROADCAST
tables: # 广播表规则列表
- <table_name>
- <table_name>
keyGenerateStrategies: # 广播表分布式序列策略列表
<table_name>: # 广播表名称
keyGenerateColumn: # 广播表分布式序列列名称
keyGeneratorName: # 分布式序列算法名称
keyGenerators: # 分布式序列算法列表
<key_generator_name>: # 分布式序列算法名称
type: IT.AUTO_INCREMENT.FIXTURE # 分布式序列算法类型
操作步骤 #
在 YAML 文件中配置广播表列表
调用 YamlShardingSphereDataSourceFactory 对象的 createDataSource 方法,根据 YAML 文件中的配置信息创建 ShardingSphereDataSource。
配置示例 #
广播表 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:
rules:
- !BROADCAST
tables:
- t_address
keyGenerateStrategies:
t_address:
keyGenerateColumn: address_id
keyGeneratorName: snowflake
keyGenerators:
snowflake:
type: SNOWFLAKE
通过 YamlShardingSphereDataSourceFactory 的 createDataSource 方法,读取 YAML 配置完成数据源的创建。
YamlShardingSphereDataSourceFactory.createDataSource(getFile("/META-INF/broadcast-databases-tables.yaml"));
算法类型的详情,请参考分布式序列算法。