Yaml配置

    读写分离

    1. ds_master: !!org.apache.commons.dbcp.BasicDataSource
    2. driverClassName: com.mysql.jdbc.Driver
    3. url: jdbc:mysql://localhost:3306/ds_master
    4. username: root
    5. password:
    6. ds_slave0: !!org.apache.commons.dbcp.BasicDataSource
    7. driverClassName: com.mysql.jdbc.Driver
    8. url: jdbc:mysql://localhost:3306/ds_slave0
    9. username: root
    10. password:
    11. ds_slave1: !!org.apache.commons.dbcp.BasicDataSource
    12. driverClassName: com.mysql.jdbc.Driver
    13. url: jdbc:mysql://localhost:3306/ds_slave1
    14. username: root
    15. password:
    16. masterSlaveRule:
    17. name: ds_ms
    18. masterDataSourceName: ds_master
    19. slaveDataSourceNames:
    20. - ds_slave0
    21. - ds_slave1
    22. props:
    23. sql.show: true

    数据脱敏

    1. dataSource: !!org.apache.commons.dbcp2.BasicDataSource
    2. driverClassName: com.mysql.jdbc.Driver
    3. url: jdbc:mysql://127.0.0.1:3306/encrypt?serverTimezone=UTC&useSSL=false
    4. username: root
    5. password:
    6. encryptRule:
    7. encryptors:
    8. encryptor_aes:
    9. type: aes
    10. props:
    11. aes.key.value: 123456abc
    12. encryptor_md5:
    13. type: md5
    14. t_encrypt:
    15. columns:
    16. user_id:
    17. plainColumn: user_plain
    18. cipherColumn: user_cipher
    19. encryptor: encryptor_aes
    20. order_id:
    21. cipherColumn: order_cipher
    22. encryptor: encryptor_md5
    23. query.with.cipher.column: true #是否使用密文列查询

    数据分片 + 数据脱敏

    1. dataSources:
    2. ds_0: !!com.zaxxer.hikari.HikariDataSource
    3. driverClassName: com.mysql.jdbc.Driver
    4. jdbcUrl: jdbc:mysql://localhost:3306/demo_ds_0
    5. username: root
    6. password:
    7. ds_1: !!com.zaxxer.hikari.HikariDataSource
    8. driverClassName: com.mysql.jdbc.Driver
    9. jdbcUrl: jdbc:mysql://localhost:3306/demo_ds_1
    10. username: root
    11. password:
    12. shardingRule:
    13. tables:
    14. t_order:
    15. actualDataNodes: ds_${0..1}.t_order_${0..1}
    16. databaseStrategy:
    17. inline:
    18. shardingColumn: user_id
    19. algorithmExpression: ds_${user_id % 2}
    20. tableStrategy:
    21. inline:
    22. shardingColumn: order_id
    23. algorithmExpression: t_order_${order_id % 2}
    24. keyGenerator:
    25. type: SNOWFLAKE
    26. column: order_id
    27. t_order_item:
    28. actualDataNodes: ds_${0..1}.t_order_item_${0..1}
    29. databaseStrategy:
    30. inline:
    31. shardingColumn: user_id
    32. algorithmExpression: ds_${user_id % 2}
    33. tableStrategy:
    34. inline:
    35. shardingColumn: order_id
    36. algorithmExpression: t_order_item_${order_id % 2}
    37. bindingTables:
    38. - t_order,t_order_item
    39. defaultTableStrategy:
    40. none:
    41. encryptRule:
    42. encryptors:
    43. encryptor_aes:
    44. type: aes
    45. props:
    46. tables:
    47. t_order:
    48. columns:
    49. order_id:
    50. plainColumn: order_plain
    51. cipherColumn: order_cipher
    52. encryptor: encryptor_aes
    53. props:
    54. sql.show: true

    治理

    1. #省略数据分片、读写分离和数据脱敏配置
    2. orchestration:
    3. name: orchestration_ds
    4. overwrite: true
    5. registry:
    6. type: zookeeper
    7. namespace: orchestration
    8. serverLists: localhost:2181

    读写分离

    1. dataSources: #省略数据源配置,与数据分片一致
    2. masterSlaveRule:
    3. name: #读写分离数据源名称
    4. masterDataSourceName: #主库数据源名称
    5. slaveDataSourceNames: #从库数据源名称列表
    6. - <data_source_name1>
    7. - <data_source_name2>
    8. - <data_source_name_x>
    9. loadBalanceAlgorithmType: #从库负载均衡算法类型,可选值:ROUND_ROBIN,RANDOM。若`loadBalanceAlgorithmClassName`存在则忽略该配置
    10. props: #读写分离负载算法的属性配置
    11. <property-name>: #属性值

    数据脱敏

    1. dataSource: #省略数据源配置
    2. encryptRule:
    3. encryptors:
    4. <encryptor-name>:
    5. type: #加解密器类型,可自定义或选择内置类型:MD5/AES
    6. props: #属性配置, 注意:使用AES加密器,需要配置AES加密器的KEY属性:aes.key.value
    7. aes.key.value:
    8. tables:
    9. <table-name>:
    10. columns:
    11. <logic-column-name>:
    12. plainColumn: #存储明文的字段
    13. cipherColumn: #存储密文的字段
    14. assistedQueryColumn: #辅助查询字段,针对ShardingQueryAssistedEncryptor类型的加解密器进行辅助查询
    15. encryptor: #加密器名字