2022-10-22 04:45:41
gRPC框架介绍
gRPC(全称:Google Remote Procedure Call)是谷歌开发的一个高性能的开源RPC框架,基于HTTP/2协议,支持多种编程语言,并采用Protobuf作为接口定义语言和消息格式。它特别适合用于服务器架构。
gRPC详细特性如下:
HTTP/2协议介绍
HTTP/2是HTTP协议的第二个大版本,与HTTP/1的主要区别在于使用了二进制传输而非文本传输,并具备多路复用的特性。HTTP/2由IETF(Internet Engineering Task Force)于2015年发布。
HTTP/2和3的区别(了解即可)
HTTP/3尚未普及,其主要推动者是谷歌。HTTP/3的最显著变化是底层传输协议从TCP改为QUIC。
Ubuntu系统安装教程
A:首先,安装必要的构建工具和依赖项:
sudo apt-get updatesudo apt-get install -y build-essential autoconf libtool pkg-configsudo apt-get install -y libssl-devsudo apt-get install -y cmakeA-1:相关依赖介绍-build-essential
build-essential是一个元包,包含了在Ubuntu系统上进行软件开发和编译所需的基本工具。它包括以下组件:
对于gRPC来说,build-essential提供了编译C++代码所需的基本工具链。
A-2:相关依赖介绍-autoconf
autoconf是一个自动化配置工具,用于生成可移植的配置脚本。它根据模板文件生成configure脚本,这些脚本可以检测系统上的环境,并生成适合该环境的Makefile。
在构建gRPC时,autoconf用于生成配置脚本,以确保构建过程能够适应不同的系统环境和依赖项。
A-3:相关依赖介绍-libtool
libtool是一个做悉通用库支持脚本,用于简化共享库的创建和使用。它提供了一套抽象接口,屏蔽了不同平台之间的共享库管理差异。
在构建gRPC时,libtool用于处理共享库的生成和管理,确保构建过程能够在不同平台上顺利进行。
A-4:相关依赖介绍-pkg-config
pkg-config是一个用于管理编译和链接标志的工具。它可以从.pc文件中读取库的配置信息,并输出相应的编译器和链接器标志。
对于gRPC来说,pkg-config用于查找和使用依赖库(如OpenSSL、Protobuf等)的配置信息,确保在编译和链接过程中正确设置相关标志。
A-5:相关依赖介绍-libssl-dev
libssl-dev包含OpenSSL库的开发头文件和库。OpenSSL是一个实现安全套接字层(SSL)和传输层安全(TLS)协议的开源项目,用于在网络通信中提供加密功能。
在构建gRPC时,libssl-dev提供了加密通信所需的库和头文件,确保gRPC能够使用TLS进行纯孙乎安全的网络通信。
B:gRPC依赖Protobuf,所以还需要安装Protobuf
# 克隆Protobuf仓库git clone详细的可以参考这篇文章,有实际记录:
C:安装gRPC
# 克隆gRPC仓库git clone --recurse-submodules -b v1.37.0C-1:克隆仓库(挺慢)

D:通过预编译包,安装gRPC(快一点)
gRPC的
比如:


D-1:解压并安装它

D-2:使用CMake构建gRPC及其依赖项。
先安装依赖:
sudo apt-get updatesudo apt-get install -y build-essential autoconf libtool pkg-configsudo apt-get install -y cmakesudo apt-get install -y libssl-devsudo apt-get install -y python3-dev python3-pip python3-setuptools在编译:
mkdir -p cmake/buildcd cmake/buildcmake ../..make -j$(nproc)D-3:安装构建好的gRPC库文件和头文件。
sudo make installsudo ldconfig