查看: 23|回复: 0

Go GRPC 入门(一)

[复制链接]

2

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2010-5-30
发表于 2020-1-13 18:04:00 | 显示全部楼层 |阅读模式

前言

微服务相关
使用 GRPC 通讯的 Golang 微服务入门
举例写一个微服务,接收网址发送请求获取返回结果返回

正文

安装工具

安装 protobuf

这是 proto 文件的编译器
点我下载
选择最新的 releases 中的适合你版本的包下载即可
如 windows 选 win64.zip 下载后解压


解压后打开包内的 bin 文件夹,里面有 protoc.exe

将其粘贴到windows的环境变量中的某一个文件夹内以便在 CMD 中随地可访问
比如将其放至 C:\Windows
打开 CMD 输入 protoc --version
成功打印当前版本即可

安装相关包

安装 golang 的proto工具包
go get -u github.com/golang/protobuf/proto
安装 goalng 的proto编译支持
go get -u github.com/golang/protobuf/protoc-gen-go
安装 GRPC
go get -u google.golang.org/grpc

创建项目

模拟微服务开发,在某个空文件夹下建立两个文件夹
分别为 clientserver

创建 proto 文件

proto 文件是微服务交互的基本
proto的语法可见
GoogleDocs
这里简单写一个示例(spider.proto)

syntax = "proto3";  // 协议为proto3

package spider;  // 包名

// 发送请求
message SendAddress {
    // 发送的参数字段
    // 参数类型 参数名 标识号(不可重复)
    string address = 1;  // 要请求的地址
    string method = 2;  // 请求方式
}

// 返回响应
message GetResponse {
    // 接收的参数字段
    // 参数类型 参数名 标识号
    int32 httpCode = 1;  // http状态码
    string response = 2;  // 返回体
}

// 定义服务,可定义多个服务,每个服务可多个接口
service GoSpider {
    // rpc请求 请求的函数 (发送请求参数) returns (返回响应的参数)
    rpc GetAddressResponse (SendAddress) returns (GetResponse);
}

生成 .bp.go 文件

使用刚才下载的 protoc 工具将 proto 文件编译成 golang 可识别的文件

protoc --go_out=. --go_opt=paths=source_relative \
    --go-grpc_out=. --go-grpc_opt=paths=source_relative \
    ./exp.proto

运行后会在当前目录下生成 spider.pb.go 文件
该文件是 server 和 client 的通信协议,业务代码不在这里,所以除非必须改,否则勿动



来源:https://www.cnblogs.com/chnmig/p/12188604.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部