微服务
微服务是什么
微服务是一种架构风格,其中应用程序由多个小型、自治的的服务所构成,每个服务都围绕特定的功能,可以独立部署,扩展和管理。微服务架构的目的是将大型的应用程序拆分成多个小型、易于管理的服务以提高可维护性、灵活性和可扩展性。
微服务如何实现
微服务的实现需要服务之间能够相互通讯,可以使用RPC(远程过程调用)、RESFUL API、消息队列等方法实现,在GoFrame中可以基于开源框架GRPC进行实现。GRPC是谷歌开发的高性能RPC框架,基于Http/2标准和Protocol Buffers(protobuf)序列化协议,提供了简单易用的接口定义语言。
环境准备
1.Protocol Buffer 编译器安装
下载地址:Releases · protocolbuffers/protobuf (github.com)
解压后将bin目录添加到环境变量
查看是否成功安装
2.Go协议编译插件安装,用于代码生成
go install google.golang.org/protobuf/cmd/protoc-gen-go@vlatest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
重要:将 %GOPATH%\bin
也添加到环境变量
注:若下载失败需设置代理
go env -w GOPROXY=https://goproxy.io,direct
后续操作基于模块支持
go env -w GO111MODULE=on
3.vscode安装protoc扩展
快速开始
使用命令gf init demo -u
创建一个初始项目
在 manifest\config\config.yaml
添加如下配置
grpc:
name: "demo" # 服务名称
address: ":8000" # 自定义服务监听地址
logPath: "./log" # 日志存储目录路径
logStdout: true # 日志是否输出到终端
errorLogEnabled: true # 是否开启错误日志记录
accessLogEnabled: true # 是否开启访问日志记录
errorStack: true # 当产生错误时,是否记录错误堆栈
在manifest\protobuf
下创建文件夹以及协议文件:user\v1\user.proto
目录结构如下:
├── manifest │ ├── protobuf │ │ ├── user │ │ &