Feign + Consul:仅启用发现(客户端),而不启用注册(服务)

时间:2017-08-24 11:13:35

标签: spring-cloud spring-cloud-feign spring-cloud-consul

引用docs

  

@EnableDiscoveryClient使应用程序成为Consul" service" (即   它注册了自己)和一个"客户" (即它可以查询领事   找到其他服务)。

如何配置使用Feign作为REST客户端的Spring Boot应用程序,并在Consul中查找服务实例,但不在Consul注册应用程序本身?

我试过了:

一个。

的各种组合
spring.cloud.consul.enabled = true
spring.cloud.consul.discovery.enabled = true

湾根本不要使用注释,只有

@EnableFeignClients
// @EnableDiscoveryClient

在通话期间产生异常:

  

org.springframework.beans.factory.UnsatisfiedDependencyException:   创建名称为' ribbonServerList'的bean时出错定义于   org.springframework.cloud.consul.discovery.ConsulRibbonClientConfiguration:   通过方法' ribbonServerList'表达不满意的依赖关系。   参数1;嵌套异常是   org.springframework.beans.factory.NoSuchBeanDefinitionException:没有   合格的bean类型   ' org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties'   可用:预计至少有1个符合autowire资格的bean   候选人。依赖注释:{}

我的FeingClient界面注释如下:

@FeignClient(value = "test-service")

其中test-service是Consul中成功注册的服务。

1 个答案:

答案 0 :(得分:2)

您应该使用@EnableDiscoveryClient(autoRegister=false)