,rpc与api区别?

用户投稿 96 0

关于“eth_rpc_php”的问题,小编就整理了【2】个相关介绍“eth_rpc_php”的解答:

rpc与api区别?

rpc的定义是远程过程调用,通俗讲就是客户端通过网络远程调用服务端的方法,比如一个用java写的method。rpc是基于tcp/ip协议之上的,一般每个rpc框架都定义了自己的协议(就是数据传输的格式,像前几位表示长度,用什么代表整数等等),一般rpc会非常注重效率,比如它会尽量减小传输的数据量以保证传输效率,还会精心设计数据的装包和解包以提升这个过程的速度。

API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。 [1]  用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。

rpc比http快多少?

快很多

1 传输协议

RPC:可以基于TCP协议,也可以基于HTTP协议。

HTTP:基于HTTP协议

2 传输效率

RPC:使用自定的TCP协议,可以让请求报文的体积更小,提高传输效率。

HTTP: 基于HTTP1.1的协议,请求中会包含很多无用信息。如果基于HTTP2.0,那么可以简单的封装一下,作为RPC使用。

3 性能消耗

RPC:基于thrift实现高效的二进制传输。

HTTP:大部分通过Json字符串实现,字节大小和序列化的耗时都比thrift更加消耗性能。

4 负载均衡

RPC:基本都自带了负载均衡策略。

HTTP:需要Nginx,HAProxy来实现。(要使用代理去访问)

5 服务治理

RPC: 能做到自动通知,不影响上游。(参考资料:Zookeeper的服务治理)

HTTP: 需要事先通知,修改Nginx/HAProxy。(负载均衡不考虑已下线服务器,或者增加上线服务器)

到此,以上就是小编对于“eth_rpc_php”的问题就介绍到这了,希望介绍关于“eth_rpc_php”的【2】点解答对大家有用。

抱歉,评论功能暂时关闭!