項目中使用過HttpClient、RestTemplate和FeignClient三種方式調用服務。
我是比較喜歡RestTemplate調用服務的。
下面是我自己常用的寫法,反正就是根據服務返回的json格式,使用對應的數據結構進行解析:
List<Map<String, String>> serviceTraces = restTemplate.getForObject(serviceUrl, ArrayList.class);
XXXServiceResponse response = restTemplate.getForObject(url, XXXServiceResponse.class);
HashMap<String,List<Map<String,Object>>> dataSetLists = null;
List<Map<String,Object>> dataSetList = null;
dataSetLists = restTemplate.getForObject(url,HashMap.class );
dataSetList = dataSetLists.get("data");
Map<String, Object> stringStringMap = dataSetList.get(i);
String domainId = (String) stringStringMap.get("domain");
開啓負載均衡
RestTemplate開啓客戶端負載均衡功能,這樣可以通過服務名作爲url地址,而不在需要具體的服務地址。
會把類似於http://HELLO-SERVICE/hello
這種地址轉爲類似於http://195.124.207.128/hello
@Bean
@LoadBalanced
RestTemplate restTemplate() {
return new RestTemplate();
}
參考資料
https://www.cnblogs.com/javazhiyin/p/9851775.html
https://blog.csdn.net/u012702547/article/details/77940838