乐趣区

关于数据库:ShardingSphere-4x-SPI

背景

在 Apache ShardingSphere 中,很多性能实现类的加载形式是通过 SPI 注入的形式实现的。Service Provider Interface (SPI) 是一种为了被第三方实现或扩大的 API,它能够用于实现框架扩大或组件替换。

Apache ShardingSphere 之所以采纳 SPI 形式进行扩大,是出于整体架构最优设计思考。为了让高级用户通过实现 Apache ShardingSphere 提供的相应接口,动静将用户自定义的实现类加载其中,从而在放弃 Apache ShardingSphere 架构完整性与性能稳定性的状况下,满足用户不同场景的理论需要。

本章节汇总了 Apache ShardingSphere 所有通过 SPI 形式载入的功能模块。如无非凡需要,用户能够应用 Apache ShardingSphere 提供的内置实现,并通过简略配置即可实现相应性能;高级用户则能够参考各个功能模块的接口进行自定义实现。咱们十分欢送大家将您的实现类反馈至开源社区,让更多用户从中收益。

SQL 解析

SQL 解析的接口用于规定用于解析 SQL 的 ANTLR 语法文件。

次要接口是 SQLParserEntry,其内置实现类有 MySQLParserEntry, PostgreSQLParserEntry, SQLServerParserEntry 和 OracleParserEntry。

无关 SQL 解析介绍,请参考 SQL 解析。

数据库协定

数据库协定的接口用于 Sharding-Proxy 解析与适配拜访数据库的协定。

次要接口是 DatabaseProtocolFrontendEngine,其内置实现类有 MySQLProtocolFrontendEngine 和 PostgreSQLProtocolFrontendEngine。

数据脱敏

数据脱敏的接口用于规定加解密器的加密、解密、类型获取、属性设置等形式。

次要接口有两个:ShardingEncryptor 和 ShardingQueryAssistedEncryptor,其中 ShardingEncryptor 的内置实现类有 AESShardingEncryptor 和 MD5ShardingEncryptor。

无关加解密介绍,请参考数据脱敏。

分布式主键

分布式主键的接口次要用于规定如何生成全局性的自增、类型获取、属性设置等。

次要接口为 ShardingKeyGenerator,其内置实现类有 UUIDShardingKeyGenerator 和 SnowflakeShardingKeyGenerator。

有分布式主键的介绍,请参考分布式主键。

分布式事务

分布式事务的接口次要用于规定如何将分布式事务适配为本地事务接口。

次要接口为 ShardingTransactionManager,其内置实现类有 XAShardingTransactionManager 和 SeataATShardingTransactionManager。

无关分布式事务的介绍,请参考分布式事务。

XA 事务管理器

XA 事务管理器的接口次要用于规定如何将 XA 事务的实现者适配为对立的 XA 事务接口。

次要接口为 XATransactionManager,其内置实现类有 AtomikosTransactionManager, NarayanaXATransactionManager 和 BitronixXATransactionManager。

无关 XA 事务管理器的介绍,请参考 XA 事务管理器。

注册核心

注册核心的接口次要用于规定注册核心初始化、存取数据、更新数据、监控等行为。

次要接口为 RegistryCenter,其内置实现类有 Zookeeper。

相干介绍请参考注册核心。

退出移动版