zoukankan      html  css  js  c++  java
  • http rpc

    http vs rpc:

    1、RPC是一种思想,Http是一种协议,这是本质区别。rpc可以基于tcp或者http实现

    2、对于在接口不多、系统与系统交互较少的情况下,解决信息孤岛初期常使用的一种通信手段;优点就是简单、直接、开发方便。利用现成的http协议进行传输。

    但是对于大型企业来说,内部子系统较多、接口非常多的情况下,RPC框架的好处就显示出来了,

    3、HTTP开发方便简单、直接。开发一个完善的RPC框架难度比较大。

    4、HTTP发明的初衷是为了传送超文本的资源,协议设计的比较复杂,参数传递的方式效率也不高。开源的RPC框架针对远程调用协议上的效率会比HTTP快很多。

    5、HTTP需要事先通知,修改Nginx/HAProxy配置。RPC框架一般都有注册中心,有丰富的监控管理;发布、下线接口、动态扩展等,对调用方来说是无感知、统一化的操作。RPC能做到自动通知,不影响上游。

    6、HTTP大部分是通过Json来实现的,字节大小和序列化耗时都比Thrift要更消耗性能。RPC,可以基于Thrift实现高效的二进制传输。

    7、RPC是长链接,不必每次通信都要像http一样去3次握手什么的,减少了网络开销;

    传输效率

    RPC:使用自定义的TCP协议,可以让请求报文体积更小,或者使用HTTP2协议,也可以很好的减少报文的体积,提高传输效率

    HTTP:如果是基于HTTP1.1的协议,请求中会包含很多无用的内容,如果是基于HTTP2.0,那么简单的封装以下是可以作为一个RPC来使用的,这时标准RPC框架更多的是服务治理

    性能消耗

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

    HTTP:大部分是通过json来实现的,字节大小和序列化耗时都比thrift要更消耗性能

    负载均衡

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

    HTTP:需要配置Nginx,HAProxy来实现

    服务治理

    RPC:能做到自动通知,不影响上游

    HTTP:需要事先通知,修改Nginx/HAProxy配置

    流行的RPC框架

    目前流行的开源RPC框架还是比较多的。下面重点介绍三种:

      • gRPC是Google最近公布的开源软件,基于最新的HTTP2.0协议,并支持常见的众多编程语言。 我们知道HTTP2.0是基于二进制的HTTP协议升级版本,目前各大浏览器都在快马加鞭的加以支持。 这个RPC框架是基于HTTP协议实现的,底层使用到了Netty框架的支持。

      • Thrift是Facebook的一个开源项目,主要是一个跨语言的服务开发框架。它有一个代码生成器来对它所定义的IDL定义文件自动生成服务代码框架。用户只要在其之前进行二次开发就行,对于底层的RPC通讯等都是透明的。不过这个对于用户来说的话需要学习特定领域语言这个特性,还是有一定成本的。

      • Dubbo是阿里集团开源的一个极为出名的RPC框架,在很多互联网公司和企业应用中广泛使用。协议和序列化框架都可以插拔是及其鲜明的特色。同样 的远程接口是基于Java Interface,并且依托于spring框架方便开发。可以方便的打包成单一文件,独立进程运行,和现在的微服务概念一致。
        偷偷告诉你集团内部已经不怎么使用dubbo啦,现在用的比较多的叫HSF,又名“好舒服”。后面有可能会开源,大家拭目以待。

  • 相关阅读:
    Vue 导出excel 自适应宽度
    .Net 5.0 项目数据库连接字符串
    .Net 5.0 从api下载文件到本地
    Oracle for 循环输出(游标提取)
    找到多个与名为“Home”的控制器匹配的类型
    让tomcat使用指定JDK
    .NetCore 3 单文件发布详解
    CentOS7 常用命令大全
    阿里云ECS CentOS 7.8 安装图形化桌面GNOME
    用命令禁用本地连接
  • 原文地址:https://www.cnblogs.com/light-train-union/p/12641265.html
Copyright © 2011-2022 走看看