第二篇文章通过手写一个micro微服务初步体验了一下micro微服务的基本流程,从本章开始我们使用micro工具生成服务模板,不用每次都手写重复的代码了。
micro工具
想使用micro我们先要安装micro,在go-mciro系列(一)中安装micro
介绍了micro的安装,这里再简单列举一下
docker安装
micro官方docker
docker pull micro/micro:v2.9.3
我修改后的docker,本系列文章后面用到的项目模板都在这个docker的基础上进行修改并发布新的版本,推荐直接使用修改后的docker
docker pull gift0526/gift-micro:v0.0.1
下载二进制
下载地址:https://github.com/micro/micro/releases/tag/v2.9.3
下载自己系统对应的版本并添加到环境变量
源码编译
源码编译需要Go版本为1.13或1.14
# 官方micro
git clone https://github.com/micro/micro.git
cd micro
git checkout v2.9.3
go build
# 修改micro
git clone https://gitee.com/zjq528/micro.git
cd micro
git checkout gift-2.9.3
go build
生成user服务模板
为了后面能够实现各个微服务之间的调用我们需要将我们的项目上传到gitee或github中,因此需要在gitee或github中创建一个仓库,这里以在gitee创建一个microuser仓库为例,下面命令中new后面就是仓库的完整地址
micro命令直接生成
micro new gitee.com/zjq528/microuser
docker命令生成(推荐)
docker run --rm -v D:\gocode\micro-study:/www -w /www gift0526/gift-micro:v0.0.1 new gitee.com/zjq528/microuser
注意:
-v 后面修改为自己要生成项目的目录
如果像我一样是windows系统,上述命令一定在cmd中执行才行,不能在git bash中执行
mac系统-v后面可以使用-v $(pwd):/www
proto文件生成rpc代码
在项目的根目录执行以下命令
protoc --go_out=./proto/microuser --micro_out=./proto/microuser ./proto/microuser/microuser.proto
注意:如果是使用官方micro工具生成的项目代码,那么需要先在microuser.proto中添加以下代码后再执行以上命令,如果使用修改后的源码编译生成的micro,或使用修改后的micro docker生成的,则不需要,模板自动生成时会有。
option go_package = "./;microuser";
运行项目
本节不修改项目的代码,只要把生成的模板代码正确运行起来即完成任务
go mod tidy
go run main.go
运行结果如下:
示例代码
gitee:https://gitee.com/zjq528/micro-study/tree/master/microuser