Apache ShardingSphere之所以采用SPI方式进行扩展,是出于整体架构最优设计考虑。 为了让高级用户通过实现Apache ShardingSphere提供的相应接口,动态将用户自定义的实现类加载其中,从而在保持Apache ShardingSphere架构完整性与功能稳定性的情况下,满足用户不同场景的实际需求。

    本章节汇总了Apache ShardingSphere所有通过SPI方式载入的功能模块。 如无特殊需求,用户可以使用Apache ShardingSphere提供的内置实现,并通过简单配置即可实现相应功能;高级用户则可以参考各个功能模块的接口进行自定义实现。 我们非常欢迎大家将您的实现类反馈至,让更多用户从中收益。

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

    主要接口是,其内置实现类有MySQLParserEntry, PostgreSQLParserEntry, SQLServerParserEntryOracleParserEntry

    有关SQL解析介绍,请参考SQL解析

    数据库协议

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

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

    主要接口有两个:和ShardingQueryAssistedEncryptor,其中ShardingEncryptor的内置实现类有AESShardingEncryptorMD5ShardingEncryptor

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

    分布式主键

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

    主要接口为ShardingKeyGenerator,其内置实现类有UUIDShardingKeyGeneratorSnowflakeShardingKeyGenerator

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

    主要接口为,其内置实现类有XAShardingTransactionManagerSeataATShardingTransactionManager

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

    XA事务管理器

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

    主要接口为XATransactionManager,其内置实现类有AtomikosTransactionManager, NarayanaXATransactionManagerBitronixXATransactionManager

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

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

    相关介绍请参考注册中心