RPC:
Remote Produce Call 远程过程调用,类似的还有RMI。
自定义数据格式,基于原生TCP通信,速度快,效率高。
早期的WebService,现在热门的Dubbo,都是RPC的典型代表。
Http:
Http是一种网络传输协议,基于TCP,规定了数据传输的格式。
现在客户浏览器与服务端通信基本都是采用Http协议。
Http协议可以进行远程服务调用,缺点是消息封装过于臃肿。
Http协议优点是对服务的提供和调用方没有任何的技术限定,自由灵活,更符合微服务的理念。
现在热门的Rest风格,就可以通过Http协议来实现。
如果公司全部采用java技术栈,那么使用Dubbo作为微服务架构是一个不错的选择。
如果公司技术栈较为多样化,而且更加青睐Spring家族,那么使用SpringCloud搭建微服务是不二之选。
微服务选择了Http,就需要考虑如何实现对请求和响应的处理。在开源世界已经有很多的Http客户端工具,能够帮助我们做这些事情。
HttpClient
OKHttp
URLConnection
这些不同的客户端,API也各不相同。
Sprng提供了一个RestTemplate模板工具类,对基于Http的客户端进行了封装,并且实现了对象与json的序列化和反序列化。
RestTemplat并没有限定Http的客户端类型,而是进行了抽象,目前常用的三种都有支持。
HttpClient
OKHttp
JDK原生的URLConnection(默认)
原文:https://www.cnblogs.com/guancangtingbai/p/12690721.html