远程调用方式
无论是微服务还是面向服务的架构(SOA),都面临着远程调用的问题。
常见的远程调用方式:
RPC:自定义数据格式基于原生TCP通信,速度快,效率高。早期的webservice,现在的dubbo都是RPC的典型。
HTTP:HTTP其实是一种网络传输协议,基于TCP,规定了数据传输格式。现在浏览器与服务端的通信基本都是采用HTTP,也可以远程调用,缺点就是消息封装臃肿。
什么是RPC?
是一个计算机通信协议。该协议允许一个计算机调用另一台计算机的服务。
两个程序之间通信,必须约定好数据传输格式。不然无法沟通,也就是需要约定好请求和响应的格式。数据再网络传输的过程中需要进行序列化,所以还需要约定统一的序列化方式。
PRC强调的是过程调用,用户不关心调用细节,就像调用本地服务一样调用远程服务。所以RPC要对过程调用进行封装。
什么是HTTP?
HTTP协议:超文本传输协议,是一种应用层协议。规定了网络传输的请求格式、响应格式、资源定位和操作的方式等。但是底层采用什么网络传输协议,并没有规定,不过现在都是采用TCP协议作为底层传输协议