2017-07-20 5 views
0

ユーレカには2つのサービスが登録されています。サービスCはサービスAを呼び出します。サービスCはクライアントです。私はfeignクライアントを手動で実装したい。しかし、私は例外をキャッチ:クライアントを手動で調整します。ロードバランサにクライアント用のサーバーがありません

com.netflix.client.ClientException:ロードバランサは、クライアントのために 利用可能なサーバーを持っていない:サービス・テスト・

Applicationクラス:

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

装うインタフェース:

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

装うの設定:

@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

私は公式の文書に従っています。https://github.com/OpenFeign/feign/tree/master/ribbon – Alexander

+0

どの豆を使うべきか分かりません。私に教えてください。 – Alexander

答えて

1

AFAIK、簡単な使い方はありませんOpenFeignとユーレカ。そのためのガイドや例はありません。また、私はいくつかの追加の実装と設定が必要かもしれないと思います。

代わりにSpring Cloud Feignを使用してください。それは、追加の実装なしでユーレカとリボンとの完全な統合を提供します。 Spring Cloud Feignは、上記のコードを少し変更するだけで使用できます。

は、代わりに既に作成されたBeanを使用しない理由は新しい `RibbonClient`を作成するSpring Cloud Feign

+0

ありがとうございます。私はそれを見た。しかし、私は建築業者に対処したいと思います。 – Alexander

+0

spring cloud feignでビルダーを使用できます。 –

関連する問題