0%

rpc

RPC是什么

自己定义协议,比如name=xxx,count=xxx,list=xxx 这样一组数据。然后走tcp或其他协议把数据发出去,远程调用指定API解析处理,然后返回结果。
别人把公共部分抽象出来了,就是RPC。

什么时候用

对于微服务来讲,rpc是一个重要的连接器。服务化使各个服务解耦,独立运维,开发视图清晰且可以方便的扩容缩容。

如果微服务之间交互很少,那可以用socket或http,但如果交互复杂,网状交互,就非常需要一个rpc服务来提升抽象和优化交互,让服务的访问就像空气和水一样简单。

举个例子

可以举个栗子来说明,如果我们要调用基于http的restful服务,代码基本如下:

1
2
3
4
request=httpclient.post("http://localhost/order/2016081511231", params);
body=request.body;
order=(Order)Json.toBean(body);
//......

那如果是rpc的化,代码基本就变成了:

1
2
3
orderService=(OrderService)new OrderRemoteProxy();
Order order=orderService.getOrder(2016081511231);
//......

欢迎关注我的其它发布渠道