1.错误异常
Thu Sep 10 10:53:41 CST 2020
There was an unexpected error (type=Internal Server Error, status=500).
I/O error on GET request for “http://cloud-zk-provider/payment”: cloud-zk-provider; nested exception is java.net.UnknownHostException: cloud-zk-provider
org.springframework.web.client.ResourceAccessException: I/O error on GET request for “http://cloud-zk-provider/payment”: cloud-zk-provider; nested exception is java.net.UnknownHostException: cloud-zk-provider at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:751) at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:677) at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:318) at com.laiql.cloud.controller.OrderController.orderPayment(OrderController.java:20) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498)
2.错误原因
上面错误引起步骤,笔者使用了RestTemplate作为请求调用方式,启动服务使用消费方去调用提供者出现上诉异常java.net.UnknownHostException: cloud-zk-provider,经过上网查证,发现在将RestTemplate类时候没有加入负载均衡注解导致, @LoadBalanced,加上注解解决问题
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
3. 题外话
如果你使用SpringcCloud Feign 组件,就不需要配置RestTemplate。