使用Consul进行服务发现时,FeignClient无法使用服务名称

时间:2020-01-21 03:57:09

标签: spring-boot microservices spring-cloud-feign

我正在使用Consul进行服务发现,并且我的两个服务都已在Consul中注册,因为它在Consul UI中可见。

Consul 但是,当我尝试通过示例服务使用Feign Client访问auth-service中可用的开放端点时,我得到

“ com.netflix.client.ClientException:负载均衡器没有 客户端可用的服务器:auth-service”。

身份验证服务 AuthServiceApplication.java

@EnableDiscoveryClient
@SpringBootApplication
@ComponentScan(basePackages = {"com.learning.*"})
public class AuthServiceApplication {

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

}

bootstrap.yaml

spring:
  application:
    name: auth-service 

示例服务 ExampleService.java


@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients(
    basePackages = {"com.learning.feign.*"}
)
@ComponentScan(basePackages = {"com.learning.*"})
public class ExampleService {
    public static void main(String[] args) {
        SpringApplication.run(ExampleService.class, args);
    }
}

AuthFeignClient.java

@FeignClient(
    name = "auth-service"
)
public interface AuthFeignClient {
    @GetMapping({"/testData"})
    ResponseEntity<GetPublicKeyResponse> getTestData();
}

注意:当我对不需要的URL进行硬编码时,Feign可以正常工作。 当我尝试使用auth-service端点时,我无法使用。

enter image description here

0 个答案:

没有答案