Go语言之gRPC+Protobuf搭建(第二十八天)

这个目前是我安装环境计较麻烦的因为网络以及外网的问题,网上好多教程都不太适合,所以我的环境基本上都是先下载安装包,手动安装的。

前言

Google 原生的 grpc 框架 是用 C 语言实现的,HTTP/2协议标准而设计,其默认包含了多种语言(cpp, ruby, python, c# 等)的实现,因而可以支持多种语言的 grpc 调用。
默认没有提供 Go 和 Java 两种语言的 GRPC 实现。Google 官方在另外的单独的仓库中提供了 Go 语言版本的 GRPC 实现,也即 grpc-go,由于网络的问题,可能下载一般就会失败或者访问不了等,所以都是访问github.com 来进行安装的。

Protobuf(Protocol Buffers),是 Google 开发的一种跨语言、跨平台的可扩展机制,用于序列化结构化数据。
grpc与传统的 REST 架构相比,REST架构通过 http 传输 JSON 或者 XML ,会带来了一个问题:服务 A 把原始数据编码成 JSON/XML 格式,发送一长串字符给服务 B,B 通过解码还原成原始数据,通信的总体数据量很大。

gRPC 采用的是支持二进制数据的 HTTP 2.0 规范,而protobuf负责处理二进制数据, 它更小、更快、更便捷。
protobuf 目前支持 C++、Java、Python、Objective-C,如果使用 proto3,还支持 C#、Ruby、Go、PHP、JavaScript 等语言。

为了方便起见,尽量申请自己的github.com 账号,以及下载git 客户端工具。

需要的安装包:
下载protocol buffer 版本编译器:
下载地址: https://github.com/google/protobuf/releases
GitHub 地址:https://github.com/protocolbuffers/protobuf

protocol 的golang插件:
下载地址: github.com/golang/protobuf/protoc-gen-go

golang实现的grpc:
下载地址:https://github.com/grpc/grpc-go

grpc依赖的包:
https://github.com/golang/net
https://github.com/golang/text

Grpc中文文档:http://doc.oschina.net/

Protobuf 安装

1.自动安装,网络情况好的,我一般下载一般就发生错误了
go get -u github.com/golang/protobuf/proto
go get -u github.com/golang/protobuf/protoc-gen-go

2.手动安装,下载Protobuf 编译器,下载地址:https://github.com/google/protobuf/releases
我的是windows,将压缩包bin目录下的exe放到环境PATH目录中即可。
我下载后解压后放在:D:\GO\GO_WORKSPACE\src\github.com\golang\protobuf
在这里插入图片描述
2.分别进入D:\GO\GO_WORKSPACE\src\github.com\golang\protobuf\protoc-gen-go
以及D:\GO\GO_WORKSPACE\src\github.com\golang\protobuf\proto
执行go build 会各自生成执行文件,两个我都放在go 的工作空间里面的bin目录下。

在这里插入图片描述

grpc安装

1.自动下载:注意文件路径符号,windows 改为 “”

git clone  http://github.com/grpc/grpc-go
git clone https://github.com/golang/net.git $GOPATH/src/golang.org/x/net
git clone https://github.co m/golang/text.git   $GOPATH/src/golang.org/x/text
git clone https://github.com/google/go-genproto.git $GOPATH/src/google.golang.org/genproto

git clone https://github.com/grpc/grpc-go.git $GOPATH/src/google.golang.org/grpc
2.手动下载,下载好的安装包,要自己手动创建目录,我的目录:D:\GO\GO_WORKSPACE\src\google.golang.org\grpc在这里插入图片描述

几个文件的目录路径如下:
在这里插入图片描述

github.com 里面是protobuf编译器 的插件
在这里插入图片描述
golang.org 是grpc 依赖的包文件

在这里插入图片描述

google.golang.org是 grpc 、 protobuf 、genproto
在这里插入图片描述

安装成功后,运行grpc 自带的例子,位置在
/grpc/examples/helloworld/greeter_client 客户端
/grpc/examples/helloworld/greeter_server 服务端
在这里插入图片描述

发布了205 篇原创文章 · 获赞 47 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/qq_32744005/article/details/105520716