Alan Hou的个人博客

Golang微服务框架Kratos使用问题总结

最近准备使用微服务框架做一套系统,当然不用框架也能做(使用gRPC、API网关和权限校验创建Go微服务 Part 1/2),但人力有限的情况下用框架肯定是更好的选择。显然 go-micro时代已经过去了,那么我们更容易锁定到国内开源的两个框架,go-zeroKratos,各有千秋。本着没有深入使用就没有发言权的原则,我很可能会各实现一套来进行对比,就学习资源而言,当前Kratos处于劣势。

关于Kratos就不过多介绍了,是由Bilibili主导开源的一套微服务框架。本文是对Kratos使用中问题的一些总结,版本自然是v2,毕竟v1官方自己都说了有很多设计缺陷,更重要的是从Bilibili 的主账号里脱离出来了,发展就看社区参与度了。初用起来感觉就是深度绑定了protobuf,不同于go-zero同时在其基础上封装了一个.api文件,全部直接使用.proto文件进行定义。然后就是使用wire来处理依赖注入。

官方对目录结构的说明如下:

根据自身业务可以在使用kratos new -r xxx(或是直接设置环境变量KRATOS_LAYOUT_REPO=xxx-layout.git)来指定采用自己的项目布局。

问题总结

单元测试

  1. m.ctrl.T undefined (type *gomock.Controller has no field or method T)

 

学习资源

退出移动版