RPC是什么
自己定义协议,比如name=xxx,count=xxx,list=xxx 这样一组数据。然后走tcp或其他协议把数据发出去,远程调用指定API解析处理,然后返回结果。
别人把公共部分抽象出来了,就是RPC。
什么时候用
对于微服务来讲,rpc是一个重要的连接器。服务化使各个服务解耦,独立运维,开发视图清晰且可以方便的扩容缩容。
如果微服务之间交互很少,那可以用socket或http,但如果交互复杂,网状交互,就非常需要一个rpc服务来提升抽象和优化交互,让服务的访问就像空气和水一样简单。
举个例子
可以举个栗子来说明,如果我们要调用基于http的restful服务,代码基本如下:
1 | request=httpclient.post("http://localhost/order/2016081511231", params); |
那如果是rpc的化,代码基本就变成了:
1 | orderService=(OrderService)new OrderRemoteProxy(); |