Kratos是bilibili开源的一套Go微服务框架,包含大量微服务相关框架及工具。
kratos new Aservice
生成后的目录结构
├── CHANGELOG.md
├── OWNERS
├── README.md
├── api # api目录为对外保留的proto文件及生成的pb.go文件
│ ├── api.bm.go
│ ├── api.pb.go # 通过go generate生成的pb.go文件
│ ├── api.proto
│ └── client.go
├── cmd
│ └── main.go # cmd目录为main所在
├── configs # configs为配置文件目录
│ ├── application.toml # 应用的自定义配置文件,可能是一些业务开关如:useABtest = true
│ ├── db.toml # db相关配置
│ ├── grpc.toml # grpc相关配置
│ ├── http.toml # http相关配置
│ ├── memcache.toml # memcache相关配置
│ └── redis.toml # redis相关配置
├── go.mod
├── go.sum
└── internal # internal为项目内部包,包括以下目录:
│ ├── dao # dao层,用于数据库、cache、MQ、依赖某业务grpc|http等资源访问
│ │ ├── dao.bts.go
│ │ ├── dao.go
│ │ ├── db.go
│ │ ├── mc.cache.go
│ │ ├── mc.go
│ │ └── redis.go
│ ├── di # 依赖注入层 采用wire静态分析依赖
│ │ ├── app.go
│ │ ├── wire.go # wire 声明
│ │ └── wire_gen.go # go generate 生成的代码
│ ├── model # model层,用于声明业务结构体
│ │ └── model.go
│ ├── server # server层,用于初始化grpc和http server
│ │ ├── grpc # grpc层,用于初始化grpc server和定义method
│ │ │ └── server.go
│ │ └── http # http层,用于初始化http server和声明handler
│ │ └── server.go
│ └── service # service层,用于业务逻辑处理,且为方便http和grpc共用方法,建议入参和出参保持grpc风格,且使用pb文件生成代码
│ └── service.go
└── test # 测试资源层 用于存放测试相关资源数据 如docker-compose配置 数据库初始化语句等
└── docker-compose.yaml
goland开发配置
需要启动配置参数(在没有配置中心前)
## 相关资料
FQA
创建项目出现错误 undefined: DemoClient ?
E:\workdspace1\go\src\kratos-demo\cmd>go build
# kratos-demo/api
..\api\client.go:15:68: undefined: DemoClient
..\api\client.go:21:9: undefined: NewDemoClient
需要的组件已安装还是出现问题, 官方去里的反馈是 kratos new 的demo库没有更新?
当有新版本发布如何更新呢?
如何回退到之前的版本?
查看当前版本
jw@jianwei kratos (main) $ kratos -v
kratos version v2.0.0-rc1
开始回退指定版本