Right. The first way is simple, just add a configruation datasource. I got it

Yanick Xia
CODING BOY
Email: [email protected]
Website: blog.yanick.site

On Dec 10, 2019, 17:20 +0800, CongXiang <[email protected]>, wrote:
> Got it.Thanks.
> Because of they are same, reduplicative configuration is not necessary , We 
> just need to explicitly declare a property to enable or disable the shadow 
> database
>
>
> 发送自 Windows 10 版邮件应用
>
> 发件人: xia Yanick
> 发送时间: 2019年12月10日 16:52
> 收件人: [email protected]
> 主题: Re: 回复: [Discuss] Shadow DatabaseConfiguration Yaml
>
> Dear Xiang:
>  the purpose of shadow database for the  `End to End Test`, almost we want 
> test the real system on the product environment, but nothing persistence to 
> the real database. So we need a shadow database for the online database.
>  I think sharing rule/ encrypt rule for shadow database is same to real 
> database.
>
>
>
>
> Yanick Xia
> CODING BOY
> Email: [email protected]
> Website: blog.yanick.site
>
> On Dec 10, 2019, 16:40 +0800, CongXiang <[email protected]>, wrote:
> > is shadow database configuration exactly same as real database 
> > configuration?
> > If it is same, or it may be same, there should have a simple way to 
> > configurate.
> > BTW, what is shadow database for? I mean what shadow database’s purpose is?
> > I have read the mail before about shadow database ,but I don’t understand.
> >
> > 发送自 Windows 10 版邮件应用
> >
> > 发件人: xia Yanick
> > 发送时间: 2019年12月10日 15:47
> > 收件人: [email protected]
> > 主题: [Discuss] Shadow Database Configuration Yaml
> >
> > Hi everyone:
> >  we will add shadow yaml configuration file
> >  the first style: add shadow database for every actual database , such as:
> >
> > # shadow config
> > dataSources:
> > master_ds_0: !!com.zaxxer.hikari.HikariDataSource
> > driverClassName: org.h2.Driver
> > jdbcUrl: 
> > jdbc:h2:mem:master_ds_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL
> > username: sa
> > password:
> > master_ds_0_slave_0: !!com.zaxxer.hikari.HikariDataSource
> > driverClassName: org.h2.Driver
> > jdbcUrl: 
> > jdbc:h2:mem:master_ds_0_slave_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL
> > username: sa
> > password:
> > shadowRule:
> > shadowDataSources: # the shadow database, one to one mapping
> > master_ds_0: !!com.zaxxer.hikari.HikariDataSource
> > driverClassName: org.h2.Driver
> > jdbcUrl: 
> > jdbc:h2:mem:master_ds_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL
> > username: sa
> > password:
> > master_ds_0_slave_0: !!com.zaxxer.hikari.HikariDataSource
> > driverClassName: org.h2.Driver
> > jdbcUrl: 
> > jdbc:h2:mem:master_ds_0_slave_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL
> > username: sa
> > This way, require that every shadowDatasource map key mapping one of actual 
> > datasources item key.
> >
> >
> >  the other way: add copy configuration for shadow rule
> >  # shadow config
> > dataSources:
> > master_ds_0: !!com.zaxxer.hikari.HikariDataSource
> > driverClassName: org.h2.Driver
> > jdbcUrl: 
> > jdbc:h2:mem:master_ds_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL
> > username: sa
> > password:
> > master_ds_0_slave_0: !!com.zaxxer.hikari.HikariDataSource
> > driverClassName: org.h2.Driver
> > jdbcUrl: 
> > jdbc:h2:mem:master_ds_0_slave_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL
> > username: sa
> > password:
> >
> > shardingRule:
> > tables:
> > t_user:
> > actualDataNodes: ds_${0..1}.t_user_${0..15}
> > databaseStrategy:
> > complex:
> > shardingColumns: region_id, user_id
> > algorithmClassName: TestDatabaseComplexAlgorithmClassName
> > tableStrategy:
> > complex:
> > shardingColumns: region_id, user_id
> > algorithmClassName: TestTableComplexAlgorithmClassName
> > bindingTables:
> > - t_order, t_order_item
> > broadcastTables:
> > - t_config
> > defaultDataSourceName: default_ds
> > defaultDatabaseStrategy:
> > inline:
> > shardingColumn: order_id
> > algorithmExpression: ds_${order_id % 2}
> > defaultTableStrategy:
> > none:
> > masterSlaveRules:
> > ds_0:
> > masterDataSourceName: master_ds_0
> > slaveDataSourceNames:
> > - master_ds_0_slave_0
> > - master_ds_0_slave_1
> > loadBalanceAlgorithmType: ROUND_ROBIN
> > ds_1:
> > masterDataSourceName: master_ds_1
> > slaveDataSourceNames:
> > - master_ds_1_slave_0
> > - master_ds_1_slave_1
> > loadBalanceAlgorithmType: RANDOM
> > shadowRule: # shadow rule
> > column: is_shadow
> > value: true
> > dataSources:
> > master_ds_0: !!com.zaxxer.hikari.HikariDataSource
> > driverClassName: org.h2.Driver
> > jdbcUrl: 
> > jdbc:h2:mem:master_ds_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL
> > username: sa
> > password:
> > master_ds_0_slave_0: !!com.zaxxer.hikari.HikariDataSource
> > driverClassName: org.h2.Driver
> > jdbcUrl: 
> > jdbc:h2:mem:master_ds_0_slave_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL
> > username: sa
> > password:
> > shardingRule:
> > tables:
> > t_user:
> > actualDataNodes: ds_${0..1}.t_user_${0..15}
> > databaseStrategy:
> > complex:
> > shardingColumns: region_id, user_id
> > algorithmClassName: TestDatabaseComplexAlgorithmClassName
> > tableStrategy:
> > complex:
> > shardingColumns: region_id, user_id
> > algorithmClassName: TestTableComplexAlgorithmClassName
> > bindingTables:
> > - t_order, t_order_item
> > broadcastTables:
> > - t_config
> > defaultDataSourceName: default_ds
> > defaultDatabaseStrategy:
> > inline:
> > shardingColumn: order_id
> > algorithmExpression: ds_${order_id % 2}
> > defaultTableStrategy:
> > none:
> > masterSlaveRules:
> > ds_0:
> > masterDataSourceName: master_ds_0
> > slaveDataSourceNames:
> > - master_ds_0_slave_0
> > - master_ds_0_slave_1
> > loadBalanceAlgorithmType: ROUND_ROBIN
> > ds_1:
> > masterDataSourceName: master_ds_1
> > slaveDataSourceNames:
> > - master_ds_1_slave_0
> > - master_ds_1_slave_1
> > loadBalanceAlgorithmType: RANDOM
> >
> > props:
> > sql.show: true
> > This way will has something  verbose config rule.
> >
> >
> >
> >
>
>

Reply via email to