You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by GitBox <gi...@apache.org> on 2020/02/13 02:33:38 UTC
[GitHub] [incubator-shardingsphere] TongRuii opened a new issue #4276: No
available sharding rule configuration in `logic_db` for orchestration.
TongRuii opened a new issue #4276: No available sharding rule configuration in `logic_db` for orchestration.
URL: https://github.com/apache/incubator-shardingsphere/issues/4276
## Question
**I just want to :**
- sharding database with hit
- Dynamic configuration
so i use orchestration
```
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-orchestration-spring-boot-starter</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-orchestration-reg-zookeeper-curator</artifactId>
<version>4.0.0</version>
</dependency>
```
```
spring.shardingsphere.datasource.names=db0,db1,db2
spring.shardingsphere.datasource.db0.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.db0.url=jdbc:mysql://127.0.0.1:3306/db0?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.shardingsphere.datasource.db0.username=root
spring.shardingsphere.datasource.db0.password=root
spring.shardingsphere.datasource.db0.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.db1.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.db1.url=jdbc:mysql://127.0.0.1:3306/db1?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.shardingsphere.datasource.db1.username=root
spring.shardingsphere.datasource.db1.password=root
spring.shardingsphere.datasource.db1.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.db2.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.db2.url=jdbc:mysql://127.0.0.1:3306/db2?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.shardingsphere.datasource.db2.username=root
spring.shardingsphere.datasource.db2.password=root
spring.shardingsphere.datasource.db2.type=com.alibaba.druid.pool.DruidDataSource
# 数据库的hit 策略
spring.shardingsphere.sharding.default-database-strategy.hint.algorithm-class-name=com.springboot.config.DbAlgorithm
spring.shardingsphere.props.sql.show=true
spring.shardingsphere.orchestration.name=sharding4
spring.shardingsphere.orchestration.overwrite=true
spring.shardingsphere.orchestration.registry.type=zookeeper
spring.shardingsphere.orchestration.registry.server-lists=localhost:2181
spring.shardingsphere.orchestration.registry.namespace=sharding-jdbc-user
```
These configurations take effect locally, but when I configure to the configuration center, the program starts incorrectly:
```
Caused by: java.lang.IllegalStateException: No available sharding rule configuration in `logic_db` for orchestration.
at com.google.common.base.Preconditions.checkState(Preconditions.java:197) ~[guava-18.0.jar:na]
at org.apache.shardingsphere.orchestration.internal.registry.config.service.ConfigurationService.persistShardingRuleConfiguration(ConfigurationService.java:133) ~[sharding-orchestration-core-4.0.0.jar:4.0.0]
at org.apache.shardingsphere.orchestration.internal.registry.config.service.ConfigurationService.persistRuleConfiguration(ConfigurationService.java:113) ~[sharding-orchestration-core-4.0.0.jar:4.0.0]
at org.apache.shardingsphere.orchestration.internal.registry.config.service.ConfigurationService.persistConfiguration(ConfigurationService.java:79) ~[sharding-orchestration-core-4.0.0.jar:4.0.0]
at org.apache.shardingsphere.orchestration.internal.registry.ShardingOrchestrationFacade.init(ShardingOrchestrationFacade.java:77) ~[sharding-orchestration-core-4.0.0.jar:4.0.0]
at org.apache.shardingsphere.shardingjdbc.orchestration.internal.datasource.AbstractOrchestrationDataSource.initShardingOrchestrationFacade(AbstractOrchestrationDataSource.java:114) ~[sharding-jdbc-orchestration-4.0.0.jar:4.0.0]
at org.apache.shardingsphere.shardingjdbc.orchestration.internal.datasource.OrchestrationShardingDataSource.<init>(OrchestrationShardingDataSource.java:73) ~[sharding-jdbc-orchestration-4.0.0.jar:4.0.0]
at org.apache.shardingsphere.shardingjdbc.orchestration.spring.boot.OrchestrationSpringBootConfiguration.shardingDataSourceByLocal(OrchestrationSpringBootConfiguration.java:130) ~[sharding-jdbc-orchestration-spring-boot-starter-4.0.0.jar:4.0.0]
at org.apache.shardingsphere.shardingjdbc.orchestration.spring.boot.OrchestrationSpringBootConfiguration$$EnhancerBySpringCGLIB$$f0ac3f5a.CGLIB$shardingDataSourceByLocal$2(<generated>) ~[sharding-jdbc-orchestration-spring-boot-starter-4.0.0.jar:4.0.0]
at org.apache.shardingsphere.shardingjdbc.orchestration.spring.boot.OrchestrationSpringBootConfiguration$$EnhancerBySpringCGLIB$$f0ac3f5a$$FastClassBySpringCGLIB$$48fdf05e.invoke(<generated>) ~[sharding-jdbc-orchestration-spring-boot-starter-4.0.0.jar:4.0.0]
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) ~[spring-core-5.0.11.RELEASE.jar:5.0.11.RELEASE]
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:365) ~[spring-context-5.0.11.RELEASE.jar:5.0.11.RELEASE]
at org.apache.shardingsphere.shardingjdbc.orchestration.spring.boot.OrchestrationSpringBootConfiguration$$EnhancerBySpringCGLIB$$f0ac3f5a.shardingDataSourceByLocal(<generated>) ~[sharding-jdbc-orchestration-spring-boot-starter-4.0.0.jar:4.0.0]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_191]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_191]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_191]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_191]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.0.11.RELEASE.jar:5.0.11.RELEASE]
... 70 common frames omitted
```
I tried this configuration again, and it was successful。
```
# 数据库
spring.shardingsphere.datasource.names=db0,db1
# 对于未配置分片规则的表默认的数据库
spring.shardingsphere.sharding.default-data-source-name=db0
# 数据源配置
spring.shardingsphere.datasource.db0.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.db0.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.db0.url=jdbc:mysql://127.0.0.1:3306/db0?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.shardingsphere.datasource.db0.username=root
spring.shardingsphere.datasource.db0.password=root
spring.shardingsphere.datasource.db1.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.db1.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.db1.url=jdbc:mysql://127.0.0.1:3306/db1?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.shardingsphere.datasource.db1.username=root
spring.shardingsphere.datasource.db1.password=root
# 分表策略
spring.shardingsphere.sharding.tables.goods.actual-data-nodes=db$->{0..1}.goods_$->{0..1}
spring.shardingsphere.sharding.tables.goods.table-strategy.inline.sharding-column=id
spring.shardingsphere.sharding.tables.goods.table-strategy.inline.algorithm-expression=goods_$->{id % 2}
# 分库策略
spring.shardingsphere.sharding.default-database-strategy.hint.algorithm-class-name=com.springboot.config.DbAlgorithm
spring.shardingsphere.props.sql.show=true
spring.shardingsphere.orchestration.name=sharding
spring.shardingsphere.orchestration.overwrite=true
spring.shardingsphere.orchestration.registry.type=zookeeper
spring.shardingsphere.orchestration.registry.server-lists=localhost:2181
spring.shardingsphere.orchestration.registry.namespace=sharding-jdbc-user
```
The difference between the above two configurations is that the second configuration adds the table sharding strategy
Anyone can tell me what to do!
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services
[GitHub] [incubator-shardingsphere] kimmking commented on issue #4276: No
available sharding rule configuration in `logic_db` for orchestration.
Posted by GitBox <gi...@apache.org>.
kimmking commented on issue #4276: No available sharding rule configuration in `logic_db` for orchestration.
URL: https://github.com/apache/incubator-shardingsphere/issues/4276#issuecomment-585659508
I read the source codes and find there table-strategy will not be allowed empty.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services
[GitHub] [incubator-shardingsphere] TongRuii commented on issue #4276: No
available sharding rule configuration in `logic_db` for orchestration.
Posted by GitBox <gi...@apache.org>.
TongRuii commented on issue #4276: No available sharding rule configuration in `logic_db` for orchestration.
URL: https://github.com/apache/incubator-shardingsphere/issues/4276#issuecomment-585657431
> Add this line to your configuration:
>
> ```
> spring.shardingsphere.sharding.default-table-strategy.none=
> ```
Thank you very much for your reply, I tried to add this configuration but failed to start
```
No converter found capable of converting from type [java.lang.String] to type [org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlNoneShardingStrategyConfiguration]
```
I don't know the principle very well. Is it OK if this configuration is empty by default
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services
[GitHub] [incubator-shardingsphere] tristaZero closed issue #4276: No
available sharding rule configuration in `logic_db` for orchestration.
Posted by GitBox <gi...@apache.org>.
tristaZero closed issue #4276: No available sharding rule configuration in `logic_db` for orchestration.
URL: https://github.com/apache/incubator-shardingsphere/issues/4276
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services
[GitHub] [incubator-shardingsphere] menghaoranss commented on issue #4276:
No available sharding rule configuration in `logic_db` for orchestration.
Posted by GitBox <gi...@apache.org>.
menghaoranss commented on issue #4276: No available sharding rule configuration in `logic_db` for orchestration.
URL: https://github.com/apache/incubator-shardingsphere/issues/4276#issuecomment-588005098
I tried this with the latest code,the following configuration can be supported **without** orchestration:
`spring.shardingsphere.sharding.default-table-strategy.none=`
see [#4043 ](https://github.com/apache/incubator-shardingsphere/issues/4043)
But orchestration does not support empty table-strategy now.
I will commit a PR later to try to fix it.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services
[GitHub] [incubator-shardingsphere] kimmking commented on issue #4276: No
available sharding rule configuration in `logic_db` for orchestration.
Posted by GitBox <gi...@apache.org>.
kimmking commented on issue #4276: No available sharding rule configuration in `logic_db` for orchestration.
URL: https://github.com/apache/incubator-shardingsphere/issues/4276#issuecomment-585651484
Add this line to your configuration:
```
spring.shardingsphere.sharding.default-table-strategy.none=
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services