Eureka 的 RestTemplate 问题

2016-12-21  本文已影响1539人  囿于昼夜

环境中配置了 Eureka ,在发起 HttpClient 请求时,遇到「eureka No instances available for ...」的问题。这是由于发起请求的目标域名在 Eureka 服务器中没有实例。
资料 ,有两种解决办法:

  1. 不要使用 netflix 这套路由服务(这居然也是一种办法么= =);
  2. 不要使用默认的 RestTemplate 来发起请求,应 new 一个新的 RestTemplate 来操作。

具体实现代码如下:

JSONObject json = new JSONObject(sendParam);
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
HttpEntity<String> reqE = new HttpEntity<String>(json.toString(), headers);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<Map> result = restTemplate.exchange(url, HttpMethod.POST, reqE, Map.class);

待考:
据说会有在 Eureka 上生成一个新实例的副作用。
最稳妥的方法还是配置 potal 。

上一篇下一篇

猜你喜欢

热点阅读