zoukankan      html  css  js  c++  java
  • 可视化gRPC语言堆栈

     

    这是gRPC堆栈的高级概述。gRPC支持10种默认语言中的一种都有多层,可让您自定义应用程序中需要的部分。

    gRPC中有三个主要堆栈:C核心,Go和Java。大多数语言都是基于C语言的薄包装 gRPC核心库:

    包装语言:

    gRPC核心堆栈

    例如,一个Python应用程序调用生成的Python存根。这些调用通过拦截器传递,并进入包装库,在其中将调用转换为C调用。gRPC C核心将RPC编码为HTTP / 2,可以选择使用TLS加密数据,然后将其写入网络。

    关于gRPC的很酷的事情之一就是您可以将这些部分交换出去。例如,您可以改用C ++,并使用进程内传输。这将使您不必一直深入到OS网络层。另一个示例是试用QUIC协议,该协议可让您快速打开新连接。能够在基于环境的各种传输上运行,使gRPC真正具有灵活性。

    对于每种包装语言,默认的HTTP / 2实现内置于C-core库中,因此无需包含外部语言。但是,如您所见,可以自带(例如使用Chrome网络库Cronet)。

    Go

    gRPC-Go中,由于不必支持这么多的配置,因此堆栈要简单得多。这是Go堆栈的高级概述:

    gRPC Go堆栈

    这里的结构有些不同。由于只有一种语言,因此从堆栈顶部到底部的流程更加线性。与包装语言不同,gRPC Go可以使用其自己的HTTP / 2实现或Gonet/http包。

    JAVA

    这是gRPC-Java的高级概述 堆栈:

    gRPC Java堆栈

    同样,结构有些不同。Java支持像C核心一样的HTTP / 2,QUIC和In Process。但是,与C-Core不同,应用程序通常可以绕过生成的存根和拦截器,并直接与Java Core库对话。根据每种gRPC语言实现的需求,每种结构都略有不同。同样与包装语言不同,gRPC Java将HTTP / 2实现分离为可插入的库(例如Netty,OkHttp或Cronet)。

  • 相关阅读:
    解决百度网盘倍速需要会员问题
    npm run dev其实就是vue-cli-service serve
    git常见操作和git原理
    ajax promise三种状态
    ajax get请求
    vue2.0x methods中一个函数调用另外一个函数
    Web前端开发规范之文件存储位置规范
    大数据应用期末总评
    分布式文件系统HDFS 练习
    安装Hadoop
  • 原文地址:https://www.cnblogs.com/a00ium/p/14158622.html
Copyright © 2011-2022 走看看