背景
在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。
相干介绍请参考注册核心。