RPC和HTTP
常见远程调用方式:
RPC:(Remote Produce Call)远程过程调用
1.基于Socket 2.自定义数据格式 3.速度快,效率高 4.典型应用代表:Dubbo,WebService,ElasticSearch集群间互相调用
HTTP:网络传输协议
1.基于TCP/IP 2.规定数据传输格式 3.缺点是消息封装比较臃肿、传输速度比较慢 4.优点是对服务提供和调用方式没有任何技术限定,自由灵活,更符合微服务理念
RPC和HTTP的区别:RPC是根据语言API来定义,而不是根据基于网络的应用来定义。
Http客户端工具
常见Http客户端工具:HttpClient(发送Http请求)、OKHttp(发送Http请求)、URLConnection(发送Http请求)。
2 Spring的RestTemplate
(1)RestTemplate介绍
-
RestTemplate是Rest的HTTP客户端模板工具类
-
对基于Http的客户端进行封装
-
实现对象与JSON的序列化与反序列化(JSON<->JavaBean)
-
不限定客户端类型,目前常用的3种客户端都支持:HttpClient、OKHttp、JDK原生URLConnection(默认方式)
(2)RestTemplate入门案例
我们可以使用RestTemplate实现请求,resttemplate
通过发送请求,请求sprovider
的/user/list
方法。
(1)搭建provider
使用IDEA搭建一个普通的SpringBoot工程即可。
pom.xml依赖
<!--父工程-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<!--web起步依赖-->
<dependency>
<groupId>org.springframework.boot&