HGD-coder opened a new issue, #15887: URL: https://github.com/apache/dubbo/issues/15887
### Pre-check - [x] I am sure that all the content I provide is in English. ### Search before asking - [x] I had searched in the [issues](https://github.com/apache/dubbo/issues?q=is%3Aissue) and found no similar issues. ### Apache Dubbo Component Java SDK (apache/dubbo) ### Dubbo Version Dubbo version: 3.2.0 Java version: 11 Config Center: Apollo Registry: Zookeeper OS: windows ### Steps to reproduce this issue When using Apollo as ConfigCenter in Dubbo 3.2.0, Dubbo fails to load registry configuration (`dubbo.registry.address`) from Apollo. As a result, the consumer startup fails with the following error: No such any registry to reference greet.GreetService on the consumer 192.168.194.250 use dubbo version 3.2.0, please config <dubbo:registry address="..." /> to your spring config At this point, I am not sure whether this behavior is due to a configuration issue on my side, or a potential bug in Dubbo. java client code ``` ConfigCenterConfig configCenter = new ConfigCenterConfig(); configCenter.setProtocol("apollo"); configCenter.setAddress("http://127.0.0.1:8080"); configCenter.setNamespace("dubbo-java"); configCenter.setConfigFile("dubbo-java"); configCenter.setAppConfigFile("SampleApp"); configCenter.setGroup("dubbo-java"); configCenter.setCluster("default"); ReferenceConfig<GreetService> reference = new ReferenceConfig<>(); reference.setInterface(GreetService.class); reference.setCheck(false); DubboBootstrap bootstrap = DubboBootstrap.getInstance() .application(APP_ID) .configCenter(configCenter) .reference(reference) .start(); ``` dubbo-java.properties in Apollo config-center ``` dubbo.registry.address = zookeeper://127.0.0.1:2181 dubbo.protocols.triple.name = tri dubbo.protocols.triple.port = 20000 dubbo.provider.services.GreeterProvider.interface = greet.GreetService ``` I am confident that this is not an issue with the configuration center itself, because dubbo-go is able to load the same configuration from the config center and successfully register services to the registry. go-server in dubbo-go-samples/config_center/apollo ``` const ( apolloMetaAddress = "127.0.0.1:8080" apolloAppID = "SampleApp" apolloCluster = "default" apolloNamespace = "dubbo.yml" ) ins, err := dubbo.NewInstance( dubbo.WithConfigCenter( config_center.WithApollo(), config_center.WithAddress(apolloMetaAddress), config_center.WithNamespace(apolloNamespace), config_center.WithDataID(apolloNamespace), config_center.WithAppID(apolloAppID), config_center.WithCluster(apolloCluster), //config_center.WithFileExtProperties(), ), ) ``` dubbo.yml in Apollo config-center ``` dubbo: registries: demoZK: protocol: zookeeper timeout: 3s address: '127.0.0.1:2181' protocols: triple: name: tri port: 20000 provider: services: GreeterProvider: interface: com.apache.dubbo.sample.basic.IGreeter ``` ### What you expected to happen java.lang.IllegalStateException: No such any registry to reference greet.GreetService on the consumer 192.168.194.250 use dubbo version 3.2.0, please config <dubbo:registry address="..." /> to your spring config. at org.apache.dubbo.config.ReferenceConfig.aggregateUrlFromRegistry (ReferenceConfig.java:573) at org.apache.dubbo.config.ReferenceConfig.createProxy (ReferenceConfig.java:430) at org.apache.dubbo.config.ReferenceConfig.init (ReferenceConfig.java:295) at org.apache.dubbo.config.ReferenceConfig.get (ReferenceConfig.java:231) at org.apache.dubbo.config.utils.SimpleReferenceCache.destroyReference (SimpleReferenceCache.java:265) at org.apache.dubbo.config.utils.SimpleReferenceCache.destroy (SimpleReferenceCache.java:218) at org.apache.dubbo.config.utils.SimpleReferenceCache.destroy (SimpleReferenceCache.java:242) at org.apache.dubbo.config.deploy.DefaultModuleDeployer.lambda$referServices$6 (DefaultModuleDeployer.java:414) at java.util.concurrent.ConcurrentHashMap$ValuesView.forEach (ConcurrentHashMap.java:4770) at org.apache.dubbo.config.deploy.DefaultModuleDeployer.referServices (DefaultModuleDeployer.java:389) at org.apache.dubbo.config.deploy.DefaultModuleDeployer.startSync (DefaultModuleDeployer.java:170) at org.apache.dubbo.config.deploy.DefaultModuleDeployer.start (DefaultModuleDeployer.java:142) at org.apache.dubbo.config.deploy.DefaultApplicationDeployer.startModules (DefaultApplicationDeployer.java:698) at org.apache.dubbo.config.deploy.DefaultApplicationDeployer.doStart (DefaultApplicationDeployer.java:662) at org.apache.dubbo.config.deploy.DefaultApplicationDeployer.start (DefaultApplicationDeployer.java:635) at org.apache.dubbo.config.bootstrap.DubboBootstrap.start (DubboBootstrap.java:227) at org.apache.dubbo.config.bootstrap.DubboBootstrap.start (DubboBootstrap.java:216) at org.example.client.ApolloJavaClient.main (ApolloJavaClient.java:50) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:566) at org.codehaus.mojo.exec.AbstractExecJavaBase.executeMainMethod (AbstractExecJavaBase.java:402) at org.codehaus.mojo.exec.ExecJavaMojo.executeMainMethod (ExecJavaMojo.java:142) at org.codehaus.mojo.exec.AbstractExecJavaBase.doExecClassLoader (AbstractExecJavaBase.java:377) at org.codehaus.mojo.exec.AbstractExecJavaBase.lambda$execute$0 (AbstractExecJavaBase.java:287) at java.lang.Thread.run (Thread.java:829) [WARNING] thread Thread[Dubbo-global-shared-handler-thread-1,5,org.example.client.ApolloJavaClient] was interrupted but is still alive after waiting at least 14999msecs [WARNING] thread Thread[Dubbo-global-shared-handler-thread-1,5,org.example.client.ApolloJavaClient] will linger despite being asked to die via interruption [WARNING] thread Thread[Dubbo-global-shared-handler-thread-2,5,org.example.client.ApolloJavaClient] will linger despite being asked to die via interruption [WARNING] thread Thread[metrics-collector-sync-job-thread-1,5,org.example.client.ApolloJavaClient] will linger despite being asked to die via interruption [WARNING] thread Thread[qos-boss-1-1,5,org.example.client.ApolloJavaClient] will linger despite being asked to die via interruption [WARNING] thread Thread[NettyServerBoss-4-1,5,org.example.client.ApolloJavaClient] will linger despite being asked to die via interruption [WARNING] thread Thread[Dubbo-framework-shared-scheduler-thread-1,5,org.example.client.ApolloJavaClient] will linger despite being asked to die via interruption [WARNING] thread Thread[Dubbo-framework-shared-scheduler-thread-2,5,org.example.client.ApolloJavaClient] will linger despite being asked to die via interruption [WARNING] thread Thread[Dubbo-framework-shared-scheduler-thread-3,5,org.example.client.ApolloJavaClient] will linger despite being asked to die via interruption [WARNING] thread Thread[Dubbo-framework-shared-scheduler-thread-4,5,org.example.client.ApolloJavaClient] will linger despite being asked to die via interruption [WARNING] thread Thread[Dubbo-framework-shared-scheduler-thread-5,5,org.example.client.ApolloJavaClient] will linger despite being asked to die via interruption [WARNING] thread Thread[Dubbo-framework-shared-scheduler-thread-6,5,org.example.client.ApolloJavaClient] will linger despite being asked to die via interruption [WARNING] thread Thread[Dubbo-framework-shared-scheduler-thread-7,5,org.example.client.ApolloJavaClient] will linger despite being asked to die via interruption [WARNING] thread Thread[Dubbo-framework-shared-scheduler-thread-8,5,org.example.client.ApolloJavaClient] will linger despite being asked to die via interruption [WARNING] NOTE: 13 thread(s) did not finish despite being asked to via interruption. This is not a problem with exec:java, it is a problem with the running code. Although not serious, it should be remedied. [WARNING] Couldn't destroy threadgroup org.codehaus.mojo.exec.AbstractExecJavaBase$IsolatedThreadGroup[name=org.example.client.ApolloJavaClient,maxpri=10] java.lang.IllegalThreadStateException at java.lang.ThreadGroup.destroy (ThreadGroup.java:776) at org.codehaus.mojo.exec.AbstractExecJavaBase.execute (AbstractExecJavaBase.java:345) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126) at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328) at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174) at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75) at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162) at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283) at org.apache.maven.cli.MavenCli.main (MavenCli.java:206) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:566) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314) `` ### Anything else The Apollo configuration center I am using is deployed following the official quick start guide: https://www.apolloconfig.com/#/zh/deployment/quick-start I have tried both Docker-based deployment and local deployment, but neither approach works. The Zookeeper registry I am using is provided by the docker-compose configuration in: dubbo-go-samples/integrate_test/dockercompose/docker-compose.yml I have also carefully reviewed the following documents: https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/apollo/ https://github.com/apache/dubbo/issues/3266 However, I am still confused about the correct behavior and configuration ### Are you willing to submit a pull request to fix on your own? - [ ] Yes I am willing to submit a pull request on my own! ### Code of Conduct - [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) -- 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. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
