Logo
广播表

广播表 #

广播表 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"));

算法类型的详情,请参考分布式序列算法