概述
配置是整個(gè)Sharding-JDBC的核心,是Sharding-JDBC中唯一與應(yīng)用開發(fā)者打交道的模塊。配置模塊也是Sharding-JDBC的門戶,通過它可以快速清晰的理解Sharding-JDBC所提供的功能。
本部分是Sharding-JDBC的配置參考手冊,需要時(shí)可當(dāng)做字典查閱。
Sharding-JDBC提供了4種配置方式,用于不同的使用場景。通過配置,應(yīng)用開發(fā)者可以靈活的使用分庫分表、讀寫分離以及分庫分表 + 讀寫分離共用。
工廠方法API
圖中黃色部分表示的是Sharding-JDBC的入口API,采用工廠方法的形式提供。 目前有ShardingDataSourceFactory和MasterSlaveDataSourceFactory兩個(gè)工廠類。ShardingDataSourceFactory用于創(chuàng)建分庫分表或分庫分表+讀寫分離的JDBC驅(qū)動(dòng),MasterSlaveDataSourceFactory用于創(chuàng)建獨(dú)立使用讀寫分離的JDBC驅(qū)動(dòng)。
配置對象
圖中藍(lán)色部分表示的是Sharding-JDBC的配置對象,提供靈活多變的配置方式。 ShardingRuleConfiguration是分庫分表配置的核心和入口,它可以包含多個(gè)TableRuleConfiguration和MasterSlaveRuleConfiguration。每一組相同規(guī)則分片的表配置一個(gè)TableRuleConfiguration。如果需要分庫分表和讀寫分離共同使用,每一個(gè)讀寫分離的邏輯庫配置一個(gè)MasterSlaveRuleConfiguration。 每個(gè)TableRuleConfiguration對應(yīng)一個(gè)ShardingStrategyConfiguration,它有5中實(shí)現(xiàn)類可供選擇。
僅讀寫分離使用MasterSlaveRuleConfiguration即可。
內(nèi)部對象
圖中紅色部分表示的是內(nèi)部對象,由Sharding-JDBC內(nèi)部使用,應(yīng)用開發(fā)者無需關(guān)注。Sharding-JDBC通過ShardingRuleConfiguration和MasterSlaveRuleConfiguration生成真正供ShardingDataSource和MasterSlaveDataSource使用的規(guī)則對象。ShardingDataSource和MasterSlaveDataSource實(shí)現(xiàn)了DataSource接口,是JDBC的完整實(shí)現(xiàn)方案。
初始化流程
- 配置Configuration對象。
- 通過Factory對象將Configuration對象轉(zhuǎn)化為Rule對象。
- 通過Factory對象將Rule對象與DataSource對象裝配。
- Sharding-JDBC使用DataSource對象進(jìn)行分庫。
使用約定
在org.apache.shardingsphere.api和org.apache.shardingsphere.shardingjdbc.api 包中的類是面向用戶的API,每次修改都會(huì)在release notes中明確聲明。 其他包中的類屬于內(nèi)部實(shí)現(xiàn),可能隨時(shí)進(jìn)行調(diào)整,請勿直接使用。
