config-sharding.yaml 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. ######################################################################################################
  2. #
  3. # 用于配置:数据分片规则
  4. #
  5. ######################################################################################################
  6. schemaName: data-center_db
  7. dataSources:
  8. ds_0:
  9. url: jdbc:mysql://192.168.0.60:3306/data-center_0?serverTimezone=UTC&useSSL=false
  10. username: root
  11. password: root
  12. connectionTimeoutMilliseconds: 30000
  13. idleTimeoutMilliseconds: 60000
  14. maxLifetimeMilliseconds: 1800000
  15. maxPoolSize: 50
  16. minPoolSize: 1
  17. ds_1:
  18. url: jdbc:mysql://192.168.0.60:3306/data-center_1?serverTimezone=UTC&useSSL=false
  19. username: root
  20. password: root
  21. connectionTimeoutMilliseconds: 30000
  22. idleTimeoutMilliseconds: 60000
  23. maxLifetimeMilliseconds: 1800000
  24. maxPoolSize: 50
  25. minPoolSize: 1
  26. rules:
  27. - !SHARDING
  28. tables: # 数据分片规则配置
  29. t_order: # 订单逻辑表名称
  30. actualDataNodes: ds_${0..1}.t_order_${0..1}
  31. databaseStrategy: # 配置分库策略
  32. standard:
  33. shardingColumn: user_id
  34. shardingAlgorithmName: database_user_inline
  35. tableStrategy: # 分表策略
  36. standard:
  37. shardingColumn: order_id
  38. shardingAlgorithmName: t_order_inline
  39. keyGenerateStrategy:
  40. column: order_id
  41. keyGeneratorName: snowflake
  42. t_order_item: # 子订单逻辑表名称
  43. actualDataNodes: ds_${0..1}.t_order_item_${0..1}
  44. databaseStrategy: # 配置分库策略
  45. standard:
  46. shardingColumn: user_id
  47. shardingAlgorithmName: database_user_inline
  48. tableStrategy: # 分表策略
  49. standard:
  50. shardingColumn: order_id
  51. shardingAlgorithmName: t_order_item_inline
  52. keyGenerateStrategy:
  53. column: order_item_id
  54. keyGeneratorName: snowflake
  55. bindingTables: # 绑定表规则列表
  56. - t_order,t_order_item
  57. # 分片算法配置
  58. shardingAlgorithms:
  59. database_user_inline:
  60. type: INLINE
  61. props:
  62. algorithm-expression: ds_${user_id % 2}
  63. t_order_inline: # 订单表分片算法名称
  64. type: INLINE
  65. props:
  66. algorithm-expression: t_order_${order_id % 2}
  67. allow-range-query-with-inline-sharding: true
  68. t_order_item_inline: # 子订单表分片算法名称
  69. type: INLINE
  70. props:
  71. algorithm-expression: t_order_item_${order_id % 2}
  72. allow-range-query-with-inline-sharding: true
  73. # 分布式序列算法配置
  74. keyGenerators:
  75. snowflake:
  76. type: SNOWFLAKE
  77. props:
  78. worker-id: 1