go语言的grpc环境安装

本文直接用安装包的方式安装。

源码编译安装参考:https://www.cnblogs.com/abc36725612/p/14288333.html

环境

golang的docker image

docker run -it golang:alpine

go语言的grpc环境安装

参考官方grpc-go文档:https://grpc.io/docs/languages/go/quickstart/

  1. 添加go依赖包的代理
# go env -w GO111MODULE=on
//重要:添加代理,参考:https://goproxy.cn/
# go env -w GOPROXY=https://goproxy.cn,direct
  1. 安装protobuf
# apk add protobuf
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
(1/7) Installing libgcc (9.3.0-r2)
(2/7) Installing libstdc++ (9.3.0-r2)
(3/7) Installing libprotobuf (3.12.2-r0)
(4/7) Installing libprotoc (3.12.2-r0)
(5/7) Installing protoc (3.12.2-r0)
(6/7) Installing libprotobuf-lite (3.12.2-r0)
(7/7) Installing protobuf (3.12.2-r0)
Executing busybox-1.31.1-r19.trigger
OK: 13 MiB in 22 packages
//查看版本
# protoc --version
libprotoc 3.12.2
  1. 安装protoc-gen-go插件
# go get google.golang.org/protobuf/cmd/protoc-gen-go 
  1. 安装grcp-go
# go get google.golang.org/grpc/cmd/protoc-gen-go-grpc
  1. 修改PATH,使得protoc 编译器能找到protoc-gen-go插件
export PATH="$PATH:$(go env GOPATH)/bin"

环境安装完成!

验证

下载示例代码:https://github.com/grpc/grpc-go

服务端启动

$ docker ps | grep golang
f37f662a3f54        golang              "/bin/sh"           14 minutes ago      Up 14 minutes                           ecstatic_lamport
$ docker exec -it f37f662a3f54 sh

# cd /grpc-go/examples/helloworld/
helloworld # ls
greeter_client  greeter_server  helloworld

helloworld # go run greeter_server/main.go
go: downloading github.com/golang/protobuf v1.4.2
go: downloading google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98
go: downloading golang.org/x/net v0.0.0-20190311183353-d8887717615a
go: downloading golang.org/x/text v0.3.0
2021/01/16 11:41:50 Received: world

客户端启动

$ docker ps | grep golang
f37f662a3f54        golang              "/bin/sh"           14 minutes ago      Up 14 minutes                           ecstatic_lamport
$ docker exec -it f37f662a3f54 sh

# cd /grpc-go/examples/helloworld/
helloworld # ls
greeter_client  greeter_server  helloworld

helloworld # go run greeter_client/main.go
2021/01/16 11:41:50 Greeting: Hello world

测试成功!

posted @ 2021-01-16 21:01  liqinglucky  阅读(560)  评论(1编辑  收藏  举报