有HTTP调用,为什么还需要RPC

两者比较

特性HTTPRPC更优
协议基于HTTP协议可以基于TCP协议,也可以基于HTTP协议RPC
易用性可以基于RESTful风格本地函数调用方式HTTP
传输效率如果基于HTTP1.1的协议,请求中会包含很多无用的内容使用自定义的TCP协议,可以让请求报文体积更小,或者使用HTTP2.0协议,也可以很好地减少报文体积,提高传输效率RPC
性能消耗大部分是通过json实现的,字节大小和序列化耗时都比thrift要更消耗性能可以基于thrift实现高效的二进制传输RPC
负载均衡需要配置Nginx,HAProxy实现基本都自带了负载均衡策略RPC
服务治理需要事先通知,修改Nginx/HAProxy配置能做到自动通知,不影响上游RPC
实现难度简单复杂HTTP
灵活性不关心实现细节,跨平台,跨语言相对来说麻烦一些HTTP

思考

  • 就像是在写循环代码的时候使用【递归】和【迭代】
    • 递归写起来更方便,但效率较低,存在爆栈风险。
    • 迭代写起来更麻烦,效率一般来说会高一些,内存也更安全。
柚子

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Index