在这两天准备学习go语言微服务相关东西时要使用micro框架,因为看的视频是用的低版本go编译器和GOPATH,使用的是旧版本的micro框架,因为找不到和视频对应的框架版本,下载了半天跑不动
网上一搜全是22,21甚至更早的搭建micro的文档,很到东西现在不适应了(比如 "github.com/golang/protobuf/proto"已经没了, 改成 "google.golang.org/protobuf/proto"了, quic-go太低, 并且找不到naming, 我也不知道是什么, 反正好像也没有了
), 实在找不下2024年的有关micro的框架搭建的文档,最后从github上照着作者的quick start终于搭建好了(官方地址: https://github.com/micro/micro?tab=readme-ov-file),以下就是搭建步骤和一些个人的心得(我比较喜欢先写坑有个准备再写步骤, 所以如果着急可以直接看第一步到第七步的命令, 有问题再回头看怎么解决):
安装 Micro CLI
-
第一步 (bash)
go install micro.dev/v4/cmd/micro@master
启动服务
我在启动时发现只有go install mirco的终端可以执行 mirco server
, 其他终端又不能使用 micro 命令, 挺奇怪的, 不知道为什么, 所以我把 micro 给放到 /usr/bin/下面去了, 或者也可以去搜文档, 把 mirco 放到自己指定的目录并在环境变量中配置一下就好了
// 放入 /usr/bin 的方法: (bash)
找到自己第一步 install 的 mirco (通常在 $GOPATH/bin 下), 然后 cp mirco /usr/bin
-
第二步 (bash)
micro server
打开一个新终端, 在 mirco server 启动时 在新终端执行命令
-
第三步
micro env set local
登录用户名和密码 (用户名/密码): admin/micro
-
第四步
micro login
# `Enter username:` admin
# `Enter password:` micro
# `Successfully logged in.`
然后就可以创建案例(eg: helloworld)
-
第五步
micro new helloworld
然后它就会输出下面这些话
Output
Creating service helloworld
.
├── main.go
├── handler
│ └── helloworld.go
├── proto
│ └── helloworld.proto
├── Makefile
├── README.md
├── .gitignore
└── go.mod
打开该项目(如果使用的是 goland就直接 open project 这个 micro new 出来的 helloworld, 如果使用 bash 命令行就直接 cd helloworld 中)
`如果没有下载 protoc... (这个文档好像比较丰富, 可以找到关于 go 语言的 proto 的环境的下载, 如果找不到可以和我私信或留言) 下载 (protoc-$VERSION-$PLATFORM.zip) :
可以下载 https://github.com/protocolbuffers/protobuf/releases 的 proto包` (这是 github 作者的话, 我简单翻译了一下)
(最下面提供了一个关于 proto 的安装的参考)
注意第六步时(make proto后)如果 import 了 "github.com/golang/protobuf/proto" 在 helloworld/proto/helloworld.pb.micro.go 中, 将它换成 "google.golang.org/protobuf/proto", 并且在 helloworld 目录下使用命令更新 go.mod, 保证 go.mod 中没有 "github.com/golang/protobuf/proto"
go mod tidy
-
第六步
在 helloworld 文件下 使用下面命令 (如果没有 make 可以安装, 这个文档也很丰富)
make init
go mod vendor
make proto
基本就完成了, 可以通过命令启动 来验证
-
第七步(在 helloworld 目录下)
micro run .
在执行完成后如果没有报错, 可以使用命令
micro status
来查看输出结果得知是否成功
$ micro status
NAME VERSION SOURCE STATUS BUILD UPDATED METADATA
helloworld latest github.com/micro/services/helloworld running n/a 4s ago owner=admin, group=micro
proto 的安装参考
-
下载 protobuf
方法一:===> git clone https://github.com/protocolbuffers/protobuf.git 方法二:===> 或者将准备好的压缩包进行拖入 解压到$GOPATH/src/github.com/protocolbuffers/下面 Unzip protobuf.zip
-
安装(ubuntu)
(1)安装依赖工具(联网) $ sudo apt-get install autoconf automake libtool curl make g++ unzip libffi-dev -y (2)进入protobuf文件 cd protobuf/ (3)进行安装检测 并生成自动安装脚本 ./autogen.sh ./configure (4)进行编译C代码 make (5)进行安装 sudo make install (6)刷新linux共享库关系 sudo ldconfig
-
测试protobuf编译工具
protoc -h
如果正常输出 相关指令 没有报任何error,为安装成功
-
安装protobuf的go语言插件
由于protobuf并没直接支持go语言需要我们手动安装相关插件
(1)下载 方法一:===> go get -v -u github.com/golang/protobuf/proto 方法二:===>或者将 github.com-golang-protobuf.zip拖入 进行解压到 $GOPATH/src/github.com/golang (2)进入到文件夹内进行编译 $ cd $GOPATH/src/github.com/golang/protobuf/protoc-gen-go $ go build (3)将生成的 protoc-gen-go可执行文件,放在/bin目录下 $ sudo cp protoc-gen-go /bin/ (4)尝试补齐protoc-gen-go 如果可以补齐代表成功,如果执行不报错 代表工具成功