花5分钟写个 grpc 微服务架构吧

背景:当前微服务架构在开发中越来越常见,其目的在于将各个模块进行解耦,实现各个模块之间快速迭代。在 golang 项目中,最流行的微服务框架当属谷歌旗下的 grpc 框架。回想起我学 grpc的 时候, 虽说不难,代码量不大, 但还是遇到了很多坑的, 如果照着网上的教程来写代码大概率是跑不通的。 特此写一篇小白也能看懂的,最简单的,带你手把手写的基于 grpc 微服务架构项目。

安装 grpc , protoc 工具 和 protobuf

在命令行中输入以下三行命令:

go get google.golang.org/grpc
go get -u github.com/golang/protobuf/proto
go get -u github.com/golang/protobuf/protoc-gen-go
复制代码

光有这几个还是不够的,还得要去下载 protobuf 安装包 下载完成后解压,将 bin 目录下的 protoc 可执行文件复制到 go安装目录下的 bin 目录,比如我的是 C:\Users\Chester_Zhang\go\bin 。要不然等等命令行无法识别 protoc 命令。

接下来确保环境变量配置正确, 如果环境变量没配置好, 可能后续的 protoc 命令无法识别。 确保go安装目录下的 bin 目录位于环境变量 中。比如我是默认安装go的,那么C:\Users\Chester_Zhang\go\bin 应该位于环境变量中。

如果 go get 过程中遇到了网络问题,可以更改 go proxy 为goproxy.cn,direct 。

正式开始吧

创建目录和工程

首先来看一看目录结构,目录结构也有很多坑。新建一个 grpc 目录,grpc 下面创建client, proto, server 三个目录

--grpc
    --client
    --proto
    --server

复制代码

然后进入 grpc 目录 命令行输入

go mod init grpc
go mod tidy
复制代码

这样就在 grpc 下面创建了一个 go 工程。

写写 protobuf

protobuf 是一种数据格式,和 json 类似,但是传输效率更高。在rpc中,一般使用protobuf格式的数据,就好比restful中使用json。

在 proto/chat 目录下创建chat.proto文件

syntax = "proto3";  

package proto;

option go_package="/";

// 定义 message
message ChatMessage {
  string b

你可能感兴趣的:(java,架构,微服务,java)