快速开始

在安装之前,请确认您的开发环境中正确安装了golang, git, 和protoc

创建kratos项目,可以使用kratos工具,如下:

  1. go get -u github.com/go-kratos/kratos/tool/kratos
  2. cd $GOPATH/src
  3. kratos new kratos-demo

根据提示可以快速创建项目,如kratos-demo就是通过工具创建生成。目录结构如下:

  1. ├── CHANGELOG.md
  2. ├── OWNERS
  3. ├── README.md
  4. ├── api # api目录为对外保留的proto文件及生成的pb.go文件
  5. ├── api.bm.go
  6. ├── api.pb.go # 通过go generate生成的pb.go文件
  7. ├── api.proto
  8. └── client.go
  9. ├── cmd
  10. └── main.go # cmd目录为main所在
  11. ├── configs # configs为配置文件目录
  12. ├── application.toml # 应用的自定义配置文件,可能是一些业务开关如:useABtest = true
  13. ├── db.toml # db相关配置
  14. ├── grpc.toml # grpc相关配置
  15. ├── http.toml # http相关配置
  16. ├── memcache.toml # memcache相关配置
  17. └── redis.toml # redis相关配置
  18. ├── go.mod
  19. ├── go.sum
  20. └── internal # internal为项目内部包,包括以下目录:
  21. ├── dao # dao层,用于数据库、cache、MQ、依赖某业务grpc|http等资源访问
  22. ├── dao.bts.go
  23. ├── dao.go
  24. ├── db.go
  25. ├── mc.cache.go
  26. ├── mc.go
  27. └── redis.go
  28. ├── di # 依赖注入层 采用wire静态分析依赖
  29. ├── app.go
  30. ├── wire.go # wire 声明
  31. └── wire_gen.go # go generate 生成的代码
  32. ├── model # model层,用于声明业务结构体
  33. └── model.go
  34. ├── server # server层,用于初始化grpc和http server
  35. ├── grpc # grpc层,用于初始化grpc server和定义method
  36. └── server.go
  37. └── http # http层,用于初始化http server和声明handler
  38. └── server.go
  39. └── service # service层,用于业务逻辑处理,且为方便http和grpc共用方法,建议入参和出参保持grpc风格,且使用pb文件生成代码
  40. └── service.go
  41. └── test # 测试资源层 用于存放测试相关资源数据 如docker-compose配置 数据库初始化语句等
  42. └── docker-compose.yaml

生成后可直接运行如下:

  1. cd kratos-demo/cmd
  2. go build
  3. ./cmd -conf ../configs

打开浏览器访问:http://localhost:8000/kratos-demo/start,你会看到输出了Golang 大法好 !!!

kratos工具