ShardingSphere中配置体系是如何设计的


这篇文章给大家分享的是有关ShardingSphere中配置体系是如何设计的的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。行表达式是 ShardingSphere 中用于实现简化和统一配置信息的一种工具,在日常开发过程中应用得非常广泛。 它的使用方式非常直观,只需要在配置中使用 ${expression} 或 $->{expression} 表达式即可。基于行表达式语法,${begin..end} 表示的是一个从”begin”到”end”的范围区间,而多个 ${expression} 之间可以用”.”符号进行连接,代表多个表达式数值之间的一种笛卡尔积关系。类似场景也可以使用枚举的方式来列举所有可能值。行表达式也提供了 ${[enum1, enum2,…, enumx]} 语法来表示枚举值,所以”ds${0..1}.user${0..1}”的效果等同于”ds${[0,1]}.user${[0,1]}”。由于 ${expression} 与 Spring 本身的属性文件占位符冲突,而 Spring 又是目前主流的开发框架,因此在正式环境中建议你使用 $->{expression} 来进行配置。对于分库分表、读写分离操作而言,配置的主要任务是完成各种规则的创建和初始化。配置是整个ShardingSphere的核心,也是我们日常开发过程中的抓药工作。可以说,只要我们掌握了ShardingSphere的核心配置项,就相当于掌握了这个框架的使用方法。那么,ShardingSphere 有哪些核心配置呢?这里以分片引擎为例介绍最常用的几个配置项,而与读写分离、数据脱敏、编排治理相关的配置项我们会在介绍具体的应用场景时再做展开。ShardingRuleConfigurationDataSource是我们使用ShardingSphere的入口,创建DataSource的过程中使用到了一个ShardingDataSourceFactory类,这个工厂类的构造函数中需要传入一个ShardingRuleConfiguration对象。显然,从命名上看,这个ShardingRuleConfiguration就是用于分片规则的配置入口。ShardingRuleConfiguration中所需要配置的规则比较多,下面通过一张图例来进行简单说明事实上,对于Sha 香港云主机rdingRuleConfiguration而言,必须要设置的只有一个配置项,即TableRuleConfiguration。TableRuleConfiguration从命名上看,TableRuleConfiguration是表分片规则配置,但事实上,这个类同时包含了对分库和分表两种场景的设置,TableRuleConfiguration包含很多重要的配置项:actualDataNodes:代表真实的数据节点,由数据源名+表名组成,支持行表达式。例如:ds${0..1}.user${0..1}databaseShardingStrategyConfig:代表分表策略,如果不设置也会使用默认分表策略,这里的默认分表策略同样来自ShardingRuleConfiguration中的defaultTableShardingStrategyConfig配置keyGeneratorConfig:代表分布式环境下的自增列生成器配置,ShardingSphere中集成了雪花算法等分布式ID的生成器实现。ShardingStrategyConfigurationdataBaseShardingStrategyConfig和tableShardingStrategyConfig的类型都是一个ShardingStrategyConfiguration对象。在ShardingSphere中,ShardingStrategyConfiguration实际上是一个空接口,存在一系列的实现类,其中的每个实现类都代表一种分片策略:在这些具体的分片策略中,通常需要指定一个分片列 shardingColumn 以及一个或多个分片算法 ShardingAlgorithm。KeyGeneratorConfiguration可以想象,对于一个自增列而言,KeyGeneratorConfiguration 中首先需要指定一个列名 column。同时,因为 ShardingSphere 中内置了一批自增列的实现机制(例如雪花算法 SNOWFLAKE 以及通用唯一识别码 UUID),所以需要通过一个 type 配置项进行指定ShardingSphere提供了4种配置方式。用于不同的使用场景:Java代码配置Yaml配置Spring命名空间配置Spring Boot配置[详细配置看官网](https://shardingsphere.apache.org/document/legacy/4.x/document/cn/manual/sharding-jdbc/configuration/ "详细配置看官网")ShardingRuleConfiguration配置体系对于ShardingSphere而言,配置体系的作用本质上就是用来初始化DataSource等JDBC对象。例如,ShardingDataSourceFactory就是基于传入的数据源Map、ShardingRuleConfiguration以及Properties来创建一个ShardingDataSource对象:在 ShardingSphere 中,所有规则配置类都实现了一个顶层接口 RuleConfiguration。RuleConfiguration 是一个空接口,ShardingRuleConfiguration 就是这个接口的实现类之一,专门用来处理分片引擎的应用场景。下面这段代码就是 ShardingRuleConfiguration 类的实现过程:可以看到,ShardingRuleConfiguration 中包含的就是一系列的配置类定义,通过前面的内容介绍,我们已经明白了这些配置类的作用和使用方法。其中,核心的 TableRuleConfiguration 定义也比较简单,主要包含了逻辑表、真实数据节点以及分库策略和分表策略的定义:无论采用哪种配置方式,所有的配置项都是在这些核心配置类的基础之上进行封装和转换。最终生成ShardingRuleConfiguration,然后通过ShardingDataSourceFatory生成ShardingDataSource获取连接。感谢各位的阅读!关于“ShardingSphere中配置体系是如何设计的”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

相关推荐: 迁移到云平台需要怎样解决大数据问题

这篇文章将为大家详细讲解有关迁移到云平台需要怎样解决大数据问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Denodo公司首席技术官Alberto Pan对于企业将业务迁移到云平台时克服大数据的难题进行了阐述…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 10/04 10:39
下一篇 10/04 10:40

相关推荐