🌷🍁 博主猫头虎 带您 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. 数据序列化基本文本和JSONJava原生的序列化方式Thrift的二进制序列化压缩二进制序列化特别地,gRPC使用protobuf(Protocol Buffers)作为其主要的序列化方式。这是Google开源的一种序列化方式,其时间效率和空间效率是JSON的3到5倍。它使用IDL语言进行描述。
4. 代理的创建gRPC通过创建代理(stub)使得调用者可以像调用本地方法那样去调用远端的服务方法。
gRPC与ThriftRPC的对比共性两者都支持异构语言的RPC。
区别网络通信:Thrift使用TCP和其专属协议,而gRPC使用HTTP2。性能角度:ThriftRPC的性能高于gRPC。背书与应用广泛性:gRPC得到了大厂Google的背书,在云原生时代与其他组件的合作更为顺利,因此gRPC的应用更为广泛。gRPC与传统RPC的区别RPC (Remote Procedure Call) 是一种远程过程调用技术,它允许程序调用另一个地址空间(通常是在共享网络的另一台机器上)的过程或函数,就像调用本地的过程或函数一样。
传输协议:传统的RPC可能使用多种协议,包括HTTP、TCP或专有协议,而gRPC固定使用HTTP2。数据序列化:传统RPC支持多种序列化方式,而gRPC主要使用protobuf。性能:由于protobuf和HTTP2的使用,gRPC通常比传统的RPC具有更高的性能。语言支持:gRPC支持多种语言,而某些传统的RPC实现可能只支持有限的语言。流式通信:gRPC支持双向流通信,而许多传统的RPC不支持或只支持有限的流通信。gRPC的优势高效地进行进程间通信。支持多种语言,原生支持C、Go和Java实现。在C语言版本上,还扩展了对C++、C#、NodeJS、Python、Ruby和PHP的支持。支持多平台运行,包括Linux、Android、IOS、MacOS和Windows。使用高效的protobuf序列化方式。采用HTTP2协议。得到了大厂的背书,如Google。以上就是关于gRPC的简要介绍,它作为一个高性能的RPC框架,在现代的分布式系统和微服务架构中有着广泛的应用。
总结:gRPC凭借其高效的protobuf序列化方式、HTTP2协议的使用以及广泛的语言和平台支持,为现代分布式系统提供了一个强大且高效的通信工具。与传统的RPC和其他现代RPC框架相比,gRPC具有明显的优势,特别是在性能、扩展性和云原生应用的集成方面。得益于Google的背书和开源社区的支持,gRPC的未来前景看起来非常光明。
原创声明======= ·
原创作者: 猫头虎