125 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
		
		
			
		
	
	
			125 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
|  | #
 | ||
|  | # Licensed to the Apache Software Foundation (ASF) under one or more
 | ||
|  | # contributor license agreements.  See the NOTICE file distributed with
 | ||
|  | # this work for additional information regarding copyright ownership.
 | ||
|  | # The ASF licenses this file to You under the Apache License, Version 2.0
 | ||
|  | # (the "License"); you may not use this file except in compliance with
 | ||
|  | # the License.  You may obtain a copy of the License at
 | ||
|  | #
 | ||
|  | #     http://www.apache.org/licenses/LICENSE-2.0
 | ||
|  | #
 | ||
|  | # Unless required by applicable law or agreed to in writing, software
 | ||
|  | # distributed under the License is distributed on an "AS IS" BASIS,
 | ||
|  | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | ||
|  | # See the License for the specific language governing permissions and
 | ||
|  | # limitations under the License.
 | ||
|  | #
 | ||
|  | 
 | ||
|  | ######################################################################################################
 | ||
|  | #
 | ||
|  | # Here you can configure the rules for the proxy.
 | ||
|  | # This example is configuration of sharding rule.
 | ||
|  | #
 | ||
|  | ######################################################################################################
 | ||
|  | 
 | ||
|  | databaseName: data-center_db
 | ||
|  | 
 | ||
|  | dataSources:
 | ||
|  |   ds_0:
 | ||
|  |     url: jdbc:mysql://localhost:3306/data-center_0?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
 | ||
|  |     username: root
 | ||
|  |     password: root
 | ||
|  |     connectionTimeoutMilliseconds: 30000
 | ||
|  |     idleTimeoutMilliseconds: 60000
 | ||
|  |     maxLifetimeMilliseconds: 1800000
 | ||
|  |     maxPoolSize: 50
 | ||
|  |     minPoolSize: 1
 | ||
|  |   ds_1:
 | ||
|  |     url: jdbc:mysql://localhost:3306/data-center_1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
 | ||
|  |     username: root
 | ||
|  |     password: root
 | ||
|  |     connectionTimeoutMilliseconds: 30000
 | ||
|  |     idleTimeoutMilliseconds: 60000
 | ||
|  |     maxLifetimeMilliseconds: 1800000
 | ||
|  |     maxPoolSize: 50
 | ||
|  |     minPoolSize: 1
 | ||
|  | 
 | ||
|  | rules:
 | ||
|  | - !SHARDING
 | ||
|  |  tables: # 数据分片规则配置
 | ||
|  |    t_order: # 订单逻辑表名称
 | ||
|  |      actualDataNodes: ds_${0..1}.t_order_${0..1}
 | ||
|  |      databaseStrategy: # 配置分库策略
 | ||
|  |        standard:
 | ||
|  |          shardingColumn: user_id
 | ||
|  |          shardingAlgorithmName: database_user_inline
 | ||
|  |      tableStrategy: # 分表策略
 | ||
|  |        standard:
 | ||
|  |          shardingColumn: order_id
 | ||
|  |          shardingAlgorithmName: t_order_inline
 | ||
|  |      keyGenerateStrategy:
 | ||
|  |        column: order_id
 | ||
|  |        keyGeneratorName: snowflake
 | ||
|  | #      auditStrategy:
 | ||
|  | #        auditorNames:
 | ||
|  | #          - sharding_key_required_auditor
 | ||
|  | #        allowHintDisable: true
 | ||
|  |    t_order_item:  # 子订单逻辑表名称
 | ||
|  |      actualDataNodes: ds_${0..1}.t_order_item_${0..1}
 | ||
|  |      databaseStrategy: # 配置分库策略
 | ||
|  |        standard:
 | ||
|  |          shardingColumn: user_id
 | ||
|  |          shardingAlgorithmName: database_user_inline
 | ||
|  |      tableStrategy:  # 分表策略
 | ||
|  |        standard:
 | ||
|  |          shardingColumn: order_id
 | ||
|  |          shardingAlgorithmName: t_order_item_inline
 | ||
|  |      keyGenerateStrategy:
 | ||
|  |        column: order_item_id
 | ||
|  |        keyGeneratorName: snowflake
 | ||
|  |  bindingTables:  # 绑定表规则列表
 | ||
|  |    - t_order,t_order_item
 | ||
|  | #  defaultDatabaseStrategy:
 | ||
|  | #    standard:
 | ||
|  | #      shardingColumn: user_id
 | ||
|  | #      shardingAlgorithmName: database_user_inline
 | ||
|  | #  defaultTableStrategy:
 | ||
|  | #    none:
 | ||
|  | #  defaultAuditStrategy:
 | ||
|  | #    auditorNames:
 | ||
|  | #      - sharding_key_required_auditor
 | ||
|  | #    allowHintDisable: true
 | ||
|  | 
 | ||
|  |  # 分片算法配置
 | ||
|  |  shardingAlgorithms:
 | ||
|  |    database_user_inline:
 | ||
|  |      type: INLINE
 | ||
|  |      props:
 | ||
|  |        algorithm-expression: ds_${user_id % 2}
 | ||
|  |    t_order_inline:  # 订单表分片算法名称
 | ||
|  |      type: INLINE
 | ||
|  |      props:
 | ||
|  |        algorithm-expression: t_order_${order_id % 2}
 | ||
|  |        allow-range-query-with-inline-sharding: true
 | ||
|  |    t_order_item_inline:  # 子订单表分片算法名称
 | ||
|  |      type: INLINE
 | ||
|  |      props:
 | ||
|  |        algorithm-expression: t_order_item_${order_id % 2}
 | ||
|  |        allow-range-query-with-inline-sharding: true
 | ||
|  | 
 | ||
|  |  # 分布式序列算法配置
 | ||
|  |  keyGenerators:
 | ||
|  |    snowflake:
 | ||
|  |      type: SNOWFLAKE
 | ||
|  |      props:
 | ||
|  |        worker-id: 1
 | ||
|  | 
 | ||
|  | #  auditors:
 | ||
|  | #    sharding_key_required_auditor:
 | ||
|  | #      type: DML_SHARDING_CONDITIONS
 | ||
|  | 
 | ||
|  | # - !BROADCAST
 | ||
|  | #  tables:
 | ||
|  | #    - t_address
 | ||
|  | 
 |