「系统架构」原来这就是RPC呀,也没那么难嘛( 二 )

  • HTTP , 如果是基于HTTP1.1的协议 , 请求中会包含很多无用的内容 , 如果是基于HTTP2.0 , 那么简单的封装一下是可以作为一个RPC来使用的 , 这时标准RPC框架更多的是服务治理
  • 性能消耗 , 主要在于序列化和反序列化的耗时
    • RPC , 可以基于thrift实现高效的二进制传输
    • HTTP , 大部分是通过json来实现的 , 字节大小和序列化耗时都比thrift要更消耗性能
    负载均衡
    • RPC , 基本都自带了负载均衡策略
    • HTTP , 需要配置Nginx , HAProxy来实现
    服务治理(下游服务新增 , 重启 , 下线时如何不影响上游调用者)
    • RPC , 能做到自动通知 , 不影响上游
    • HTTP , 需要事先通知 , 修改Nginx/HAProxy配置
    总结:
    • RPC主要用于公司内部的服务调用 , 性能消耗低 , 传输效率高 , 服务治理方便 。
    • HTTP主要用于对外的异构环境 , 浏览器接口调用 , APP接口调用 , 第三方接口调用等 。