Golang 微服务实战 - 3. Go-Micro 框架
Go-Micro 是分布式系统的开发框架。 由 Micro 公司开发,几经波折后发展到了 v4 版本(详见Go-Micro 不能用了?关于 Go-Micro 的一些说明),Github 仓库地址点此。请注意,现在普遍的 Go-Micro 框架并非指该仓库 https://github.com/micro/micro ,该框架是一个云原生开发平台而非微服务框架。
安装
下文将默认安装以下所有组件
框架
我使用的是 go 1.9 版本,最新的 go-micro 框架版本是 4.9.0 ,因此只需要在项目的 go.mod
内的 require
项里添加如下语句即可
1 | go-micro.dev/v4 v4.9.0 |
命令工具
如果需要,还可以额外安装控制台命令。可以在官方文档中查看详细信息。
1 | go install github.com/go-micro/cli/cmd/go-micro@latest |
安装完成后,在命令行输入 go-micro
验证是否成功安装。
仪表板工具
也可以安装 Go-Micro Web 仪表板,方便后续测试。
1 | go install github.com/go-micro/dashboard@latest |
直接在命令行输入 dashboard
启动 Go-Micro Web 仪表板。浏览器访问 http://127.0.0.1:8082/
,输入用户名:admin,密码:micro,即可进入仪表板
仪表板配置见官方文档。
新建项目
在指定目录下,控制台输入以下指令将创建名字为 Micro-Learning 的 Go-Micro 服务端项目模板
1 | go-micro new service Micro-Learning |
此处仅演示 Go-Micro 框架的服务端模板创建。关于客户端,接下来将使用另一个微服务框架 Gin 实现,因此不在此说明
项目结构
控制台输入 tree /f
指令,输出项目模板文件树如下
1 | │ .dockerignore |
- main.go: 项目的入口文件。
- handler/: 处理 grpc 实现的接口。对应实现接口的子类,都放置在 handler 中。
- proto/: 预生成的 protobuf 文件。
- Dockerfile: 部署微服务使用的 Dockerfile
- Makefile: 编译文件。最常用于快速编译 protobuf 文件。
Tips: Windows 下如何使用 make 指令?
使用 Win 11/Win 10 自带的 Windows 包管理工具 winget 。输入指令
winget install GnuWin32.Make -l "{Path}"
,运行即可安装,其中 Path 是你想安装 Make 的目录(绝对路径)。安装完成后将 Path 目录下的 bin 目录添加进环境变量,重启控制台即可使用 Make 。
执行以下 make 指令编译环境配置
1 | make init |
这两个指令将初始化必要环境并编译 protocol buffer 文件
使用 consul 服务发现
Go-Micro 框架默认自带服务发现:mdns,但功能不够强大,需要使用 consul 提供服务发现。在 go.mod
文件中添加以下 Go-Micro 框架的 consul 依赖
1 | github.com/go-micro/plugins/v4/registry/consul v1.1.0 |
在上文创建的 Go-Micro 服务端模板项目中的 main.go
中修改以下部分代码
1 | // consul 服务发现服务器的地址,可以有多个(对应 consul 集群) |