【原】B站的Kratos框架遇到的一些问题

/ 0评 / 1

最近在学习B站的Kratos框,在安装过程中遇到了一些问题,在这里进行了一些总结。

一、protobuf问题 在安装的时候会看到如下提示 

2020/04/26 12:37:17 您还没安装protobuf,请进行手动安装:https://github.com/protocolbuffers/protobuf/releases

如果你没有发现这个提示,在运行 kratos run  或者go build 的时候会看到如下提示

# kratos-demo/api
..\api\client.go:15:68: undefined: DemoClient
..\api\client.go:21:9: undefined: NewDemoClient
panic: exit status 2

简单来说就是protobuf没有安装成功。api路径貌似和protobuf是有关联的。

解决办法:

protobuf地址:https://github.com/protocolbuffers/protobuf/releases 我这里使用的是win10,所以我直接下载压缩包,解压配置path变量即可。首先选择合适的版本,我这里选择的是:protoc-3.11.4-win64.zip。如图:

下载完成后直接解压,自己选择一个合适的路径存放。例如我是放在 D:\study\protobuf 路径下,然后在系统变量里配置path变量:

1:在我的电脑右键选择属性,找到高级系统设置

2:选择环境变量

3:然后在系统变量里选择“Path”变量,编辑变量

4:新建变量,路径写到刚才解压好的protobuf里的bin目录里。

5:确定保存后。在cmd下执行protoc命令查看是否生效,识别到命令后就完成了。

最后再去运行框架就不会出现上面的问题了。

二、grpc版本不兼容的问题在执行go build的时候出现如下截图问题。

解决办法:

分析造成问题的原因是grpc版本的问题。我本地最新的grpc版本是v1.28.0,而框架需要的是v1.26.0之前的版本。所以在go.mod里强制修改版本号 。

//默认是v1.28.0版本
require google.golang.org/grpc v1.28.0
//修改为v1.26.0 版本
replace google.golang.org/grpc v1.28.0 => replace google.golang.org/grpc v1.26.0

修改完后重新启动框架即可。不过在后续的更行后,已经兼容到最新的grpc版本了。如遇到此类问题,建议更新框架试试。