docker pull shardingsphere/sharding-proxy
获取镜像。详细信息请参考Docker镜像。bin/start.sh
,Windows操作系统请运行bin/start.bat
启动Sharding-Proxy。如需配置启动端口、配置文件位置,可参考快速入门
进行启动。psql -U root -h 127.0.0.1 -p 3307
若想使用Sharding-Proxy的数据库治理功能,则需要使用注册中心实现实例熔断和从库禁用功能。详情请参考支持的注册中心。
sharding-orchestration-reg-zookeeper-curator-${sharding-sphere.version}.jar
文件删除。当用户需要使用自定义的分片算法类时,无法再通过简单的inline表达式在yaml文件进行配置。可通过以下方式配置使用自定义分片算法。
algorithmClassName
属性上,具体可参考配置规则。Sharding-Proxy接入的分布式事务API同Sharding-JDBC保持一致,支持LOCAL,XA,BASE类型的事务。
Sharding-Proxy原生支持XA事务,默认的事务管理器为Atomikos。
可以通过在Sharding-Proxy的conf目录中添加jta.properties
来定制化Atomikos配置项。
具体的配置规则请参考Atomikos的官方文档。
BASE目前没有打包到Sharding-Proxy中,使用时需要将实现了ShardingTransactionManager
SPI的jar拷贝至conf/lib目录,然后切换事务类型为BASE。
SCTL为Sharding-Proxy特有的控制语句,可以在运行时修改和查询Sharding-Proxy的状态,目前支持的语法为:
语句 | 说明 |
---|---|
sctl:set transaction_type=XX | 修改当前TCP连接的事务类型, 支持LOCAL,XA,BASE。例:sctl:set transaction_type=XA |
sctl:show transaction_type | 查询当前TCP连接的事务类型 |
sctl:show cached_connections | 查询当前TCP连接中缓存的物理数据库连接个数 |
sctl:explain SQL语句 | 查看逻辑SQL的执行计划,例:sctl:explain select * from t_order; |
sctl:hint set MASTER_ONLY=true | 针对当前TCP连接,是否将数据库操作强制路由到主库 |
sctl:hint set DatabaseShardingValue=yy | 针对当前TCP连接,设置hint仅对数据库分片有效,并添加分片值,yy:数据库分片值 |
sctl:hint addDatabaseShardingValue xx=yy | 针对当前TCP连接,为表xx添加分片值yy,xx:逻辑表名称,yy:数据库分片值 |
sctl:hint addTableShardingValue xx=yy | 针对当前TCP连接,为表xx添加分片值yy,xx:逻辑表名称,yy:表分片值 |
sctl:hint clear | 针对当前TCP连接,清除hint所有设置 |
sctl:hint show status | 针对当前TCP连接,查询hint状态,master_only:true/false,sharding_type:databases_only/databases_tables |
sctl:hint show table status | 针对当前TCP连接,查询逻辑表的hint分片值 |
Sharding-Proxy 默认不支持hint,如需支持,请在conf/server.yaml中,将props
的属性proxy.hint.enabled
设置为true。在Sharding-Proxy中,HintShardingAlgorithm的泛型只能是String类型。
bin/start.sh 3308