开发者社区 > 云原生 > 正文

gRPC是什么?

gRPC是什么?

展开
收起
1358896759097293 2021-03-17 17:19:10 2045 0
3 条回答
写回答
取消 提交回答
  • 45271990@qq.com

    gRPC 相比较于一些框架将应用层协议构建在裸 TCP 上,gRPC 选择了 HTTP/2.0 作为 传输层协议。通过对 Header 内容和 Payload 格式的限定实现上层协议功能。,gRPC 最终被设计为一个跨语言、跨平台的、通用的协议。 功能上基本已经完全具备或可以轻易扩展出需要的新功能。然而我们知道,软件工程没有银 弹,相比较于裸 TCP 专有协议,极限性能上 gRPC 肯定是要差一些。但是对大部分应 用来说,相比较于 HTTP/1.1 的协议,gRPC/HTTP2 已经在性能上取得了很大的进步, 同时又兼顾了可读性。 序列化上,gRPC 被设计成保持 payload 中立,但实际的跨语言场景需要一个强规 范的接口定义语言来保证序列化结果的一致。在 gRPC 的官方实现中,protobuf 和 json 分别用来支持性能场景和开发效率场景。从序列化方式的选择到协议的各维度比较, 基于 gRPC 扩展出新的协议是最优的选择。

    2021-03-18 23:11:28
    赞同 展开评论 打赏
  • 下一站是幸福

    gRPC是什么可以用官网的一句话来概括

    A high-performance, open-source universal RPC framework
    

    所谓RPC(remote procedure call 远程过程调用)框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从server/client模型。使用的时候客户端调用server端提供的接口就像是调用本地的函数一样。

    2021-03-18 00:08:58
    赞同 展开评论 打赏
  • 在 gRPC 里客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。与许多 RPC 系统类似,gRPC 也是基于以下理念:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服务端实现这个接口,并运行一个 gRPC 服务器来处理客户端调用。在客户端拥有一个存根能够像服务端一样的方法。

    2021-03-18 00:39:17
    赞同 展开评论 打赏
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载