@ Golang爬虫-gRPC
gRPC
RPC(Remote Procedure Call)— 远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
安装Protobuf
-
安装protoc编译器 — 下载链接
# protobuf-all-3.17.1.tar.gz # 解压 tar -xzf protobuf-all-3.17.1.tar.gz cd protobuf-3.17.1/ # 校验 ./configure # 编译 make # 安装 sudo make install # 加载配置 sudo ldconfig # 是否安装成功 protoc --version
-
安装protoc插件
# 第一种 go get google.golang.org/protobuf/cmd/protoc-gen-go go install google.golang.org/protobuf/cmd/protoc-gen-go go get google.golang.org/grpc/cmd/protoc-gen-go-grpc go install google.golang.org/grpc/cmd/protoc-gen-go-grpc # 第二种 go get github.com/golang/protobuf/protoc-gen-go go install github.com/golang/protobuf/protoc-gen-go go get github.com/grpc/grpc-go/cmd/protoc-gen-go-grpc go install github.com/grpc/grpc-go/cmd/protoc-gen-go-grpc # 最终方案 下载失败,从源码编译安装 git clone github.com/golang/protobuf cd protoc-gen-go go install git clone https://github.com/grpc/grpc-go cd cmd/protoc-gen-go-grpc go install # protoc-gen-go-grpc: program not found or is not executable echo "export GOPATH=$HOME/go" >>~/.profile echo "export PATH=$PATH:$GOPATH/bin" >>~/.profile
protoc使用
# 当前目录为hello.proto所在目录 protoc --go-grpc_out=. --go_out=. hello.proto
gRPC
go get google.golang.org/grpc # 调试 go get github.com/fullstorydev/grpcurl go install github.com/fullstorydev/grpcurl
gRPC调试
gRPC是基于http2协议,因此不像普通的http/1.1接口那样可以直接通过postman或curl进行调用。采用社区开源工具grpcurl
项目地址
这次绝对不鸽!