微服务或者SOA都会面临服务间的远程调用,
服务间的远程调用有2种方式:
-
1. RPC
Remote Produce Call 远程过程调用,自定义数据格式,基于原生TCP通信,速度快、效率高。
WebService, Dubbo都是RPC的代表。
-
2. HTTP
HTTP是一种网络传输协议,基于TCP,规定数据传输的格式。
-
优点:对服务的提供和调用方没有技术限定,更符合微服务理念
-
缺点:消息封装臃肿
应用场景
-
Dubbo: 公司全部采用Java技术栈
-
Spring Cloud:技术栈多样化(多种语言开发),更青睐Spring。(证券公司的服务器用C编写)
HTTP客户端工具
-
HttpClient
-
OKHttp
-
HttpUrlConnection
客户端工具不同,API也不同。
Spring ResetTemplate
Spring提供ResetTemplate模板工具类,对基于http的客户端进行封装。实现对象与json的序列化和反序列化,非常方便。
ResetTemplate没有限定http客户端类型,支持三种客户端。
-
HttpClient
-
OKHttp
-
JDK原生的HttpUrlConnection(默认)