一、Rest方式
1.RestTemplate是什么?
RestTemplate是Spring对Http客户端进行封装的一个模板工具类,对常用的Http客户端例如:HttpClient、OKHttp、JDK原生的URLConnection(默认的)都支持。
2.RestTemplate能做什么?
基于Restful风格可以对远程服务基于http协议进行远程调用
3.RestTemplate的一些问题
虽然RestTemplate能够调用远程服务,但是这样还存在着很多问题:
1)、请求地址http://127.0.0.1:8081/findById
硬编码了,如果更换环境,那么需要更改大量的代码
2)、并没有一个中心来控制并管理provider和consumer之间的关系与调用
3)、使用RestTemplate调用远程服务代码开发量相对而言大,现在的Demo是业务简单,只需要简单调用getForObject就能获取数据。事实上,RestTemplate还有大量基于Http协议的方法,比如delete()、getForEntity()、getForObject()、put()、headForHeaders()等。但是在后期的SpringCloud学习过程中,Feign作为SpringCloud的核心组件,用于远程服务调用,也是基于Http协议,并且支持注解开发,能够大量减少开发量
二、Feign方式
Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。
它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。
Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。