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
 | |
| 
 |