zoukankan      html  css  js  c++  java
  • grpc1--- grpc简介

    grpc自己介绍自己,重点突出高性能

    gRPC is a modern, open source, high-performance remote procedure call (RPC) framework that can run anywhere

    如果项目是用go写的,grpc也是一个不错的选择,使用java的对这个grpc的诟病很大,grpc很多插件没有

    1.grpc的接口设计

      对于远程服务调用,grpc规定client与server都需要约定好service的结构,包含:方法名称,请求参数,返回参数,grpc默认是使用protobuf实现的。

    2.grpc支持流传输:

      grpc流传输一般默认支持的单次数据流大小是419******左右(具体多少忘了),大概就是3/4M左右吧,没查是不是http2的流量控制,因此对于重复的比较大的数据结构,推荐使用流传输,而对于类似文件这种东西,流传输就是普通的tcp文件传输,接受端循环接受,知道包EOF错误,发送端发送可迭代对象,也就是文件边读边发。

      grpc支持单边流以及双向流,一般接受完成后,已在EOF错误处理中返回,使用SENDANDCLOSE

    3.protocol

      grpc协议层是基于http2设计的(但之前看一片测评文章,结构发现文件传输的时候速度有点慢,可能底层还未实现把)

      http2协议:感觉很厉害

    • 使用二进制替换了文本传输,貌似是一个二分桢,细节可以google
    • 头部压缩,利用HAPC算法,貌似很牛逼
    • 对消息进行编码,无需FIFO,改进多路复用,组装消息就用这些编码

    grpc文档比较少,大部分让自己看例子,可以在源码的examples看。

  • 相关阅读:
    Flink 1.14 新特性预览
    基于 MaxCompute 的实时数据处理实践
    Serverless 工程实践 | 细数 Serverless 的配套服务
    不得不看!虚拟货币和区块链的关系
    美国华尔街拥抱区块链是最大的威胁
    1.图片底部圆弧
    二、快捷键
    三、ASP.NET Core 部署Linux
    一、.NET Core MVC 项目结构模板
    一、纯css实现顶部进度条随滚动条滚动
  • 原文地址:https://www.cnblogs.com/yangshixiong/p/12111919.html
Copyright © 2011-2022 走看看