前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >gRPC简介: Google的高性能RPC框架

gRPC简介: Google的高性能RPC框架

作者头像
猫头虎
发布2024-04-09 08:27:02
2710
发布2024-04-09 08:27:02
举报

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础入门篇)》学会Golang语言,畅玩云原生,走遍大小厂~💐

🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥

gRPC简介: Google的高性能RPC框架

摘要: gRPC是Google开源的高性能RPC框架,起源于Google内部的RPC系统——Stubby。本文详细探讨了gRPC的核心设计思路、与ThriftRPC和传统RPC的区别,以及gRPC的主要优势。

引言: 在分布式系统和微服务架构日益盛行的今天,远程过程调用(RPC)技术变得越来越重要。gRPC,作为Google推出的一个开源RPC框架,已经成为了这个领域的一个标准。本文旨在深入探讨gRPC的设计、特点和其在现代应用中的价值。

gRPC是由Google开源的一个高性能的RPC框架,起源于Google内部的RPC系统——Stubby。在2015年,它被正式开源,成为云原生时代的一个RPC标准。

gRPC的核心设计思路

1. 网络通信

gRPC自己封装了网络通信的部分,并为多种语言提供了网络通信的封装,包括C、Java(基于Netty)和Go。

2. 传输协议

gRPC使用HTTP2作为其传输协议,支持二进制数据内容的传输。它还支持双向流(双工)以及连接的多路复用。

3. 数据序列化
  • 基本文本和JSON
  • Java原生的序列化方式
  • Thrift的二进制序列化
  • 压缩二进制序列化

特别地,gRPC使用protobuf(Protocol Buffers)作为其主要的序列化方式。这是Google开源的一种序列化方式,其时间效率和空间效率是JSON的3到5倍。它使用IDL语言进行描述。

4. 代理的创建

gRPC通过创建代理(stub)使得调用者可以像调用本地方法那样去调用远端的服务方法。

gRPC与ThriftRPC的对比

共性

两者都支持异构语言的RPC。

区别
  1. 网络通信:Thrift使用TCP和其专属协议,而gRPC使用HTTP2。
  2. 性能角度:ThriftRPC的性能高于gRPC。
  3. 背书与应用广泛性:gRPC得到了大厂Google的背书,在云原生时代与其他组件的合作更为顺利,因此gRPC的应用更为广泛。

gRPC与传统RPC的区别

RPC (Remote Procedure Call) 是一种远程过程调用技术,它允许程序调用另一个地址空间(通常是在共享网络的另一台机器上)的过程或函数,就像调用本地的过程或函数一样。

  1. 传输协议:传统的RPC可能使用多种协议,包括HTTP、TCP或专有协议,而gRPC固定使用HTTP2。
  2. 数据序列化:传统RPC支持多种序列化方式,而gRPC主要使用protobuf。
  3. 性能:由于protobuf和HTTP2的使用,gRPC通常比传统的RPC具有更高的性能。
  4. 语言支持:gRPC支持多种语言,而某些传统的RPC实现可能只支持有限的语言。
  5. 流式通信:gRPC支持双向流通信,而许多传统的RPC不支持或只支持有限的流通信。

gRPC的优势

  1. 高效地进行进程间通信。
  2. 支持多种语言,原生支持C、Go和Java实现。在C语言版本上,还扩展了对C++、C#、NodeJS、Python、Ruby和PHP的支持。
  3. 支持多平台运行,包括Linux、Android、IOS、MacOS和Windows。
  4. 使用高效的protobuf序列化方式。
  5. 采用HTTP2协议。
  6. 得到了大厂的背书,如Google。

以上就是关于gRPC的简要介绍,它作为一个高性能的RPC框架,在现代的分布式系统和微服务架构中有着广泛的应用。

总结:

gRPC凭借其高效的protobuf序列化方式、HTTP2协议的使用以及广泛的语言和平台支持,为现代分布式系统提供了一个强大且高效的通信工具。与传统的RPC和其他现代RPC框架相比,gRPC具有明显的优势,特别是在性能、扩展性和云原生应用的集成方面。得益于Google的背书和开源社区的支持,gRPC的未来前景看起来非常光明。

原创声明

======= ·

  • 原创作者: 猫头虎
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • gRPC简介: Google的高性能RPC框架
    • gRPC的核心设计思路
      • 1. 网络通信
      • 2. 传输协议
      • 3. 数据序列化
      • 4. 代理的创建
    • gRPC与ThriftRPC的对比
      • 共性
      • 区别
    • gRPC与传统RPC的区别
      • gRPC的优势
        • 总结:
        • 原创声明
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档