系列文章目录
第一章 grpc基本概念与安装
第二章 grpc入门示例
第三章 proto文件数据类型
第四章 多服务示例
第五章 多proto文件示例
第六章 服务器流式传输
第七章 客户端流式传输
第八章 双向流示例
文章目录
一、基本介绍
1.1 什么是rpc
RPC
是Remote Procedure Call
的简称,中文叫远程过程调用
,简单的说,就是调用远程方法和调用本地方法一样
1.2 什么是grpc
而grpc
是由 google
开发的一个高性能、通用的开源RPC框架
官网地址:What is gRPC?
1.3 grpc的作用
gRPC
的作用是实现跨网络的高效通信。在gRPC
中,客户端应用程序可以不同的机器上像调用本地方法一样,直接调用服务器应用程序上的方法,使得更容易创建分布式应用和服务。
1.4 grpc的应用场景
场景 | 备注 |
---|---|
微服务架构 | gRPC 提供了一种高效的方式来定义和通信与多个微服务之间的接口,在不同的语言和平台之间进行通信 |
分布式系统 | gRPC 使用 Protocol Buffers 作为接口定义语言,可以在分布式系统中定义和共享接口,并实现跨语言和平台的通信 |
高性能的网络通信 | gRPC 使用基于 HTTP/2 的协议进行通信,支持双向流、流控制、多路复用等特性,并且使用 Protocol Buffers 进行序列化和反序列化,提供了高性能和低延迟的网络通信 |
服务间通信 | gRPC 可以用于服务间的通信,例如像客户端应用程序和服务器之间的通信,或者服务之间的通信。 |
实时数据传输 | gRPC 支持双向流通信,可以用于实时数据传输,例如聊天应用程序、实时推送等场景 |
跨语言和平台的通信 | gRPC 支持多种编程语言,并且可以在不同语言和平台之间进行通信,方便开发人员使用不同的技术栈来构建分布式系统 |
1.5 protoc 与Protobuf
protoc
是Protocol Buffers
的编译器,用于将Protobuf文件(.proto文件)
编译成相应的编程语言代码,可以根据.proto文件
生成各种编程语言的代码文件
。
Protobuf
是一种数据序列化格式和协议
,可以用于将结构化数据序列化为二进制格式,以便在不同系统之间进行数据传输或存储。Protobuf
使用简洁、高效的二进制编码格式,比传统的文本格式(如XML、JSON等)更小、更快,同时具备跨平台、跨语言的特性。通过.proto文件
定义数据结构和消息格式之后,可以使用protoc编译器
生成相应的代码,方便在不同的编程语言中使用Protobuf
进行数据的序列化和反序列化操作。
二、安装
2.1 Mac 安装 protoc 及代码生成插件
通过brew工具安装
brew install protobuf
查看版本
protoc --version
2.2 安装用于生成 go 和 grpc 相关的工具
各个语言的代码生成工具,对于 Golang 来说,称为 protoc-gen-go
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
export PATH=$PATH:$GOPATH/bin
2.3 卸载protobuf
brew uninstall protobuf
2.4 测试查看
go version
protoc --version
protoc-gen-go --version
完成ヾ(◍°∇°◍)ノ゙