Go GRPC 入门(一)
前言
微服务相关
使用 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
创建项目
模拟微服务开发,在某个空文件夹下建立两个文件夹
分别为 client 和 server
创建 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 可识别的文件
输出的目录 proto所在目录
protoc --go_out=plugins=grpc:./ ./spider.proto
运行后会在当前目录下生成 spider.pb.go 文件
该文件是 server 和 client 的通信协议,业务代码不在这里,所以除非必须改,否则勿动
Go GRPC 入门(一)的更多相关文章
- grpc入门(三)
grpc入门(三) 一.介绍 本文是关于grpc的第三篇博文,是对前两篇博文的具体代码实现,秉着个人一贯的风格,没有太多抒情和总结,直接就上代码. 文章代码参考:https://github.com/ ...
- Go 中的 gRPC 入门详解
目录 Go GRPC 入门 1,安装包 2,gRPC 服务端 3,gRPC 客户端 4,编译运行 5,其它 GRPC Protobuf buffer 字段类型 字段规则 Protobuf gRPC 四 ...
- 微服务架构攀登之路(三)之gRPC入门
一.gRPC入门 1. gRPC 简介 gRPC 由 google 开发,是一款语言中立.平台中立.开源的远程过程调用系统 gRPC 客户端和服务端可以在多种环境中运行和交互,例如用 java 写一个 ...
- ASP.NET Core gRPC 入门全家桶
一. 说明 本全家桶现在只包含了入门级别的资料,实战资料更新中. 二.官方文档 gRPC in Asp.Net Core :官方文档 gRPC 官网:点我跳转 三.入门全家桶 正片: ASP.NET ...
- 跟我一起学Go系列:gRPC 入门必备
RPC 的定义这里就不再说,看文章的同学都是成熟的开发.gRPC 是 Google 开源的高性能跨语言的 RPC 方案,该框架的作者 Louis Ryan 阐述了设计这款框架的动机,有兴趣的同学可以看 ...
- gRPC入门—golang实现
1.RPC 1.1 什么是RPC RPC(Remote Procedure Call),即远程过程调用,过程就是方法,简单来说,它就是一种能够像调用本地方法一样调用远程计算机进程中的方法的技术,在这种 ...
- grpc 入门(一)--hello world
一,从rpc接口的定义说起,下面给一个最简单的grpc示例--hello world 在这个rpc横行的世界里,实现一个rpc很重要的一件事就是定义一个好接口,一个好的接口定义会让你省去很多麻烦.熟悉 ...
- grpc 入门(二)-- 服务接口类型
本节是继上一章节Hello world的进一步深入挖掘; 一.grpc服务接口类型 在godoc的网站上对grpc的端口类型进行了简单的介绍,总共有下面4种类型[1]: gRPC lets you d ...
- window下golang使用gRPC入门案例&net core客户端
gRPC是google开源高性能分布式RPC框架,支持http/2 双向数据流传输及Protobuff,可以在任何环境下运行. 它可以有效地将数据中心内和跨数据中心的服务与可插拔支持进行负载均衡,跟踪 ...
随机推荐
- c++11-17 模板核心知识(十五)—— 解析模板之依赖型类型名称与typename Dependent Names of Types
模板名称的问题及解决 typename规则 C++20 typename 上篇文章c++11-17 模板核心知识(十四)-- 解析模板之依赖型模板名称 Dependent Names of Templ ...
- 老男孩培训作业day1
作业一:博客(开通博客园) 作业二:编写登录接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 作业三:多级菜单 三级菜单 可依次选择进入各子菜单 所需新知识点:列表.字典(列表和字典的相互 ...
- 如何实现OSM地图本地发布并自定义配图
目录 1.缘起 2.准备环境 2.1.安装linux系统 2.2.安装docker 2.3.安装Docker Compose 2.4.安装git 3.发布地图 3.1.拉取代码 3.2.测试网络 3. ...
- HuangB2ydjm
Hi! 我现在呢还是学生,想想初中的同学都结婚生子了,自己,嗯.(啊!!!) 本科以及硕士读的都是应用统计 在这里请广大网友多多指教了! 如果有机会的话,大家可以一起造轮子 you can catch ...
- 算法——n皇后问题
n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案. 每一种解法包含一个明确的 n 皇后问题的棋 ...
- PHP 读取XML大文件格式并将其存入数据库中
<?php $xml = new XMLReader(); $xmlfile="./full_database.xml";#文件路径 $xml->open( ...
- Docker(六):Docker安装Kibana
查找Kibana镜像 镜像仓库 https://hub.docker.com/ 下拉镜像 docker pull kibana:7.7.0 查看镜像 docker images 创建Kibana容器 ...
- ssl证书---验证域名数量分类
单域名SSL证书 : 单一域名 多域名SSL证书 : 多个域名 通配符SSL证书 : 通配符域名
- 工具-Git与GitHub-GitHub使用(99.5.3)
@ 目录 1.在github中添加公钥 2.克隆项目 3.在本地工作区新建分支,修改文件并提交 4.推送到远程仓库 5.从远程分支上拉取代码 关于作者 1.在github中添加公钥 首次使用git必须 ...
- UWP 适配不同设备 屏幕
1.DeviceFamily-Type文件夹 将Index.xaml拷贝到DeviceFamily-Desktop 和DeviceFamily-Mobile,删除这2个目录下的Index.xmal.c ...