我@FeignClient
第一次尝试在一个简单的 REST 客户端测试应用程序中使用。我想使用 Ribbon 在两个服务器实例之间进行负载平衡,但不使用 Eureka。按照文档,我已经配置了我application.yml
的listOfServers
属性并禁用了 Eureka。ribbon
我的客户端的名称与属性的 YAML 前缀名称相同。
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
),所以我显然在这里错过了一些东西。
谁能指出我正确的方向?
谢谢,
抢。