gRPC简单实践

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36316303/article/details/86548629

gRPC简单实践

CNCF

CNCF 是一个开源软件基金会,致力于使云原生计算具有普遍性和可持续性。 云原生计算使用开源软件技术栈将应用程序部署为微服务,将每个部分打包到自己的容器中,并动态编排这些容器以优化资源利用率。 云原生技术使软件开发人员能够更快地构建出色的产品。

CNCF 项目成员主要有:KubernetesPrometheusOpenTracingFluentdgRPCcontainerdRktCNIEnvoyJaegerNotaryTUFVitessCoreDNSNatsLinkerd等。

gRPC

gRPC 是由 Google 开发的高性能 RPC(远程过程调用)框架,针对连接跨语言、云和数据中心的服务以及将移动设备连接到后端的云原生计算环境的大规模、多平台性质进行了服务优化。 gRPC 支持 10 种流行语言,并被全球一些领先的企业、技术供应商和大学所使用。 gRPC改善了分布式计算环境中远程调用的延迟性,同时支持多语言编程,并包括 iOS 和 Android 的客户端库以及后端服务器。

安装

安装Protocol Buffers v3

安装用于生成gRPC服务代码的protoc编译器。

  • https://github.com/google/protobuf/releases下载预编译二进制文件,并解压文件;

  • 执行下列命令:

    cd protobuf-3.6.1/
    ./configure
    make
    sudo make install
    
  • 执行命令go get -u github.com/golang/protobuf/protoc-gen-go安装 Protobuf Golang 插件;

安装gRPC

使用以下命令安装gRPC:

go get -u google.golang.org/grpc

但事实是由于墙的原因上述命令并不能成功执行,查阅资料我们通过依次执行以下命令可以成功安装:

wget https://github.com/grpc/grpc-go/archive/master.tar.gz
tar zxvf master.tar.gz
mv grpc-go-master/ grpc
go install google.golang.org/grpc

若在安装过程中出现了部分包缺失的问题,请在https://github.com/golang下载相应包到对应的路径;google.golang.org/genprotohttps://github.com/google/go-genproto/archive/master.tar.gz页面下载。

简单的gRPC服务:helloworld

$GOPATH/src/google.golang.org/grpc/examples路径下找到示例helloworld

构建示例

切换到示例目录:

cd $GOPATH/src/google.golang.org/grpc/examples/helloworld

gRPC服务在.proto文件中定义,用于生成相应的.pb.go文件。该.pb.go文件是由使用protoc协议编译器编译的.proto文件生成的。

示例中该helloworld.pb.go文件已经生成(通过编译helloworld.proto),它位于$GOPATH/src/google.golang.org/grpc/examples/helloworld/helloworld目录。

helloworld.pb.go文件包含:

  • 生成的客户端和服务器代码;
  • 用于填充,序列化,以及检索HelloRequestHelloReply信息类型的代码。

编译运行

执行下面的命令编译与运行客户端、服务端代码:

go run greeter_server/main.go
go run greeter_client/main.go

结果如下:

  • 客户端:
    在这里插入图片描述
  • 服务端:
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36316303/article/details/86548629