一 服务间的调用
1.1 调用的方式
无论是微服务还是SOA,都面临着服务间的远程调用。常见的远程调用方式有以下2种:
1.RPC:Remote Produce Call远程过程调用,RPC基于Socket,工作在会话层。自定义数据格式,速度快,效 率高。早期的webservice,现在热门的dubbo,都是RPC的典型代表
2.Http:http其实是一种网络传输协议,基于TCP,工作在应用层,规定了数据传输的格式。现在客户端浏览器与服务端通信基本都是采用Http协议,也可以用来进行远程服务调用。缺点是消息封装臃肿,优势是对服务的 提供和调用方没有任何技术限定,自由灵活,更符合微服务理念。
现在热门的Rest风格,就可以通过http协议来实现。 选择Spring Cloud套件,使用Http方式来实现服务间调用。
1.2 http调用工具
例如:
HttpClient
OKHttp
URLConnection
pring也有对http的客户端进行封装,提供了工具类叫RestTemplate
1.3 RestTemplate
Spring提供了一个RestTemplate模板工具类,对基于Http的客户端进行了封装,并且实现了对象与json的序列化和 反序列化,非常方便。RestTemplate并没有限定Http的客户端类型,而是进行了抽象,目前常用的3种都有支持:
HttpClient
OkHttp
JDK原生的URLConnection(默认的)
二 RestTemplate
通过RestTemplate的getForObject()方法,传递url地址及实体类的字节码,RestTemplate会自动发起请求,接 收响应,并且帮我们对响应结果进行反序列化。
1.启动类注册RestTemplate

2.启动springboot项目,在项目中的测试类中直接 @Autowired 注入

其实就是:将调用远程服务返回的json串,反序列化成对象
本文探讨了SpringBoot中如何利用RestTemplate进行服务间调用,介绍了RPC与HTTP的区别,重点讲解了如何使用HttpClient、OkHttp和RestTemplate进行HTTP调用,并阐述了RestTemplate的简化操作。
347

被折叠的 条评论
为什么被折叠?



