手动假设客户端。负载均衡器没有可用于客户端的服务器

时间:2017-07-20 08:38:39

标签: netflix-eureka netflix-feign

我在eureka注册了两项服务。服务C呼叫服务A.服务C是假装客户端。我想手动实现feign客户端。但我抓住了一个例外:

  

com.netflix.client.ClientException:负载均衡器没有   客户端的可用服务器:service-test-a

申请类:

@EnableEurekaClient
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

Feign界面:

@Component
public interface FeignService {
    @RequestLine("GET /")
    public String getServiceA();
}

Feign config:

@Configuration
@Import(FeignClientsConfiguration.class)
public class MyConfig {

}

控制器:

@RestController
public class Controller {

    private FeignService feignService;

    @Autowired
    public void Controller() {
        feignService = Feign.builder()
                .client(RibbonClient.create())
                .target(FeignService.class, "http://service-test-a");
    }

    @RequestMapping(value = "/build", method = RequestMethod.GET)
    public String getServiceC() {
        return feignService.getServiceA();
    }
}

我做错了什么?

1 个答案:

答案 0 :(得分:1)

AFAIK,没有简单的方法在eureka上使用 OpenFeign 。没有指南或示例。另外我猜它可能需要一些额外的实现和配置。

相反,请尝试使用 Spring Cloud Feign 。它提供与eureka和功能区的完全集成,无需任何其他实现。您只需在上面的代码中进行一些更改即可使用Spring Cloud Feign。

请参阅Spring Cloud Feign