apache / apache/dubbo

配置禁用元数据中心后,comsumer启动报错,我该怎么配置?

Open
#9,293 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
41.6k
Forks
26.4k
Avg merge
15h 13m
Merged PRs (30d)
4

Description

dubbo 3.0.4
nacos 2.0+

```
dubbo:
application:
name: ${server.name}
metadata-type: local
protocol:
port: -1
name: dubbo
registry:
address: nacos://${nacos.server}?registry-type=service
parameters:
namespace: ${nacos.namespace}
use-as-metadata-center: false
use-as-config-center: false
```

provider配置了以下参数,不想在nacos配置中心显示dubbo的配置文件
```
metadata-type: local
use-as-metadata-center: false
use-as-config-center: false
```

comsumer启动的时候报以下错误
```
java.lang.IllegalStateException: the metadata report was not initialized.
at org.apache.dubbo.metadata.report.MetadataReportInstance.checkInit(MetadataReportInstance.java:87) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.metadata.report.MetadataReportInstance.getMetadataReport(MetadataReportInstance.java:76) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.registry.client.metadata.MetadataServiceNameMapping.getAndListen(MetadataServiceNameMapping.java:107) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.metadata.AbstractServiceNameMapping.getAndListenServices(AbstractServiceNameMapping.java:101) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.registry.client.ServiceDiscoveryRegistry.doSubscribe(ServiceDiscoveryRegistry.java:213) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.registry.client.ServiceDiscoveryRegistry.subscribe(ServiceDiscoveryRegistry.java:201) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.registry.ListenerRegistryWrapper.subscribe(ListenerRegistryWrapper.java:109) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.registry.integration.DynamicDirectory.subscribe(DynamicDirectory.java:160) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.registry.client.ServiceDiscoveryRegistryDirectory.subscribe(ServiceDiscoveryRegistryDirectory.java:106) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.registry.integration.RegistryProtocol.doCreateInvoker(RegistryProtocol.java:560) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.registry.integration.RegistryProtocol.getServiceDiscoveryInvoker(RegistryProtocol.java:536) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.registry.client.migration.MigrationInvoker.refreshServiceDiscoveryInvoker(MigrationInvoker.java:424) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.registry.client.migration.MigrationInvoker.migrateToForceApplicationInvoker(MigrationInvoker.java:201) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.registry.client.migration.MigrationRuleHandler.refreshInvoker(MigrationRuleHandler.java:76) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.registry.client.migration.MigrationRuleHandler.doMigrate(MigrationRuleHandler.java:42) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.registry.client.migration.MigrationRuleListener.onRefer(MigrationRuleListener.java:241) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.registry.integration.RegistryProtocol.interceptInvoker(RegistryProtocol.java:529) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.registry.integration.RegistryProtocol.doRefer(RegistryProtocol.java:498) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.registry.integration.RegistryProtocol.refer(RegistryProtocol.java:483) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.qos.protocol.QosProtocolWrapper.refer(QosProtocolWrapper.java:83) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.rpc.protocol.ProtocolListenerWrapper.refer(ProtocolListenerWrapper.java:74) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.rpc.cluster.filter.ProtocolFilterWrapper.refer(ProtocolFilterWrapper.java:71) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.rpc.protocol.ProtocolSerializationWrapper.refer(ProtocolSerializationWrapper.java:52) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.rpc.Protocol$Adaptive.refer(Protocol$Adaptive.java) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.config.ReferenceConfig.createInvokerForRemote(ReferenceConfig.java:474) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:379) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:266) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:203) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.config.utils.SimpleReferenceCache.get(SimpleReferenceCache.java:117) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.config.deploy.DefaultModuleDeployer.lambda$referServices$6(DefaultModuleDeployer.java:326) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.config.deploy.DefaultModuleDeployer$$Lambda$1002/0x000000006fc20a20.accept(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.ConcurrentHashMap$ValuesView.forEach(ConcurrentHashMap.java:4772) ~[na:na]
at org.apache.dubbo.config.deploy.DefaultModuleDeployer.referServices(DefaultModuleDeployer.java:306) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.config.deploy.DefaultModuleDeployer.start(DefaultModuleDeployer.java:146) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onContextRefreshedEvent(DubboDeployApplicationListener.java:108) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onApplicationEvent(DubboDeployApplicationListener.java:98) ~[dubbo-3.0.4.jar:3.0.4]
at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onApplicationEvent(DubboDeployApplicationListener.java:44) ~[dubbo-3.0.4.jar:3.0.4]
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:404) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:361) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:898) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.__refresh(AbstractApplicationContext.java:554) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.jrLockAndRefresh(AbstractApplicationContext.java:40002) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:41008) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) ~[spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) ~[spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) ~[spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) ~[spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]
at com.test.demo.DemoApplication.main(DemoApplication.java:21) ~[classes/:an]
```

Contributor guide

Open the contributing guide

Research direction

Reproduce the consumer startup with the shown Dubbo 3.0.4 and Nacos configuration. Start at MetadataReportInstance.checkInit and ServiceDiscoveryRegistry.doSubscribe in the stack trace, then compare the consumer and provider metadata settings. Done means the consumer starts successfully with the metadata center disabled, with the required configuration documented or corrected.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, spring-boot
Domain
backend, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.