0

@FeignClient単純な REST クライアント テスト アプリケーションで初めて使用しようとしています。2 つのサーバー インスタンス間の負荷分散にリボンを使用したいのですが、Eureka は使用しません。ドキュメントに従って、プロパティを使用して構成application.ymlし、 listOfServersEureka を無効にしました。私のクライアントは、プロパティの YAML プレフィックスと同じ名前で命名されていribbonます。

application.yml:

ds:
  ribbon:
    listOfServers: server1:18201,server2:18201

クライアントコード:

@FeignClient("ds")
public interface DataServicesClient {
  @RequestMapping(method = RequestMethod.GET, value = "/context-path/customers")
  List<Customers> getCustomers();
}

listOfServersアプリケーションを起動すると、リボンによってピックアップされていることがわかります。

2016-03-07 12:15:17.275  INFO 39948 --- [nio-8081-exec-1] 
    c.n.l.DynamicServerListLoadBalancer      : DynamicServerListLoadBalancer for client ds 
    initialized: DynamicServerListLoadBalancer:{NFLoadBalancer:name=ds,current list of 
    Servers=[server1:18201, server2:18201]

ただし、クライアントはサーバー接頭辞なしでアノテーションの値のみを使用して呼び出しを行い@RequestMapping、明らかに失敗します。

2016-03-07 12:15:21.394 ERROR 39948 --- [nio-8081-exec-1] o.a.c.c.C.[.[.[/].
    [dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context 
    with path [] threw exception [Request processing failed; nested exception is 
    feign.RetryableException: Unexpected end of file from server executing GET 
    http://context-path/customers] with root cause
java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source)

各サーバーに順番に注入することを期待していたhttp:{server instance}/context-path/customersので ( )、明らかにここで何かを見逃しています。

誰でも私を正しい方向に向けることができますか?

ありがとう、

ロブ。

4

1 に答える 1