Nacos作为注册中心,使用spring cloud config作为配置中心,discoveryClient冲突 5C

1.本项目是基于jdk1.8开发的,使用doker容器部署nacos注册中心,及发布服务实例 ,在服务实例中启用spring.cloud.config.discovery.enabled=true配置,实例运行报错,提示找不到DiscoveryClient,

2.程序启动类WaiterServiceApplication

@EnableDiscoveryClient
@SpringBootApplication
public class WaiterServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(WaiterServiceApplication.class, args);
    }

}

3.bootstrap。properties配置

spring.application.name=waiter-service

spring.cloud.nacos.discovery.server-addr=192.168.40.129:8848

spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.service-id=config-service

4.maven pom.xml主要依赖

 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>0.9.0.RELEASE</version>
</dependency>
<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

5.服务启动报错信息

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.cloud.client.discovery.DiscoveryClient' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1654) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1213) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1167) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:857) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:760) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    ... 43 common frames omitte

6.尝试方案
方案一:移除spring.cloud.config.discovery.enabled=true配置后,程序可以正常启动并成功注册到注册中心,但是无法获取cloud config info
方案二:将spring.cloud.config.discovery.enabled=true 及spring.cloud.config.discovery.service-id=config-service移到application.yml文件中,程序正常启动并成功注册到注册中心,但是无法还是获取cloud config info

7.各位大佬,类似这种情形应该如何处理

u012664271
talory520 回复幕紫: thanks
7 个月之前 回复
ankeway
幕紫 https://github.com/alibaba/nacos/issues/1388 Nacos不支持SpringCloudConfig服务发现的方式获取远程配置
7 个月之前 回复
u012664271
talory520 如果配置中心不注册到nacos,可以直接指定spring.cloud.config.uri=http://localhost9700(对应的配置中心server),可以正常访问git配置
8 个月之前 回复
u012664271
talory520 回复苟子易: 我做了其它的尝试,spring.cloud.config.discovery.enabled=true放到application.yml,该文件是晚于bootstrap文件加载,另外
8 个月之前 回复
y381890858
苟子易 同样的情况,求解
8 个月之前 回复

2个回答

u012664271
talory520 谢谢,不过我这个项目不是用nacos作为配置中心,而是用springcloud自带的配置中心,使用git作为配置
8 个月之前 回复

https://github.com/alibaba/nacos/issues/1388 Nacos不支持Spring Cloud Config以服务发现的方式获取远程配置

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问