介绍

kratos包含了一批好用的工具集,比如项目一键生成、基于proto生成http&grpc代码,生成缓存回源代码,生成memcache执行代码,生成swagger文档等。

获取工具

执行以下命令,即可快速安装好kratos工具

  1. go get -u github.com/go-kratos/kratos/tool/kratos

那么接下来让我们快速开始熟悉工具的用法~

kratos本体

kratos是所有工具集的本体,就像go一样,拥有执行各种子工具的能力,如go buildgo tool。先让我们看看-h的输出:

  1. NAME:
  2. kratos - kratos tool
  3. USAGE:
  4. kratos [global options] command [command options] [arguments...]
  5. VERSION:
  6. 0.0.1
  7. COMMANDS:
  8. new, n create new project
  9. build, b kratos build
  10. run, r kratos run
  11. tool, t kratos tool
  12. version, v kratos version
  13. self-upgrade kratos self-upgrade
  14. help, h Shows a list of commands or help for one command
  15. GLOBAL OPTIONS:
  16. --help, -h show help
  17. --version, -v print the version

可以看到kratos有如:new build run tool等在内的COMMANDS,那么接下来一一演示如何使用。

kratos new

kratos new是快速创建一个项目的命令,执行如下:

  1. kratos new kratos-demo

即可快速在当前目录生成一个叫kratos-demo的项目。此外还支持指定owner和path,如下:

  1. kratos new kratos-demo -o YourName -d YourPath

注意,kratos new默认会生成通过 protobuf 定义的grpcbm示例代码的,如只生成bm请加--http,如下:

  1. kratos new kratos-demo -o YourName -d YourPath --http

如只生成grpc请加--grpc,如下:

  1. kratos new kratos-demo -o YourName -d YourPath --grpc

特别注意,如果不是MacOS系统,需要自己进行手动安装protoc,用于生成的示例项目api目录下的proto文件并不会自动生成对应的.pb.go.bm.go文件。

也可以参考以下说明进行生成:protoc说明

kratos build & run

kratos buildkratos rungo buildgo run的封装,可以在当前项目任意目录进行快速运行进行调试,并无特别用途。

kratos tool

kratos tool是基于proto生成http&grpc代码,生成缓存回源代码,生成memcache执行代码,生成swagger文档等工具集,先看下的执行效果:

  1. kratos tool
  2. protoc(已安装): 快速方便生成pb.goprotoc封装,windowsLinux请先安装protoc工具 Author(kratos) [2019/10/31]
  3. genbts(已安装): 缓存回源逻辑代码生成器 Author(kratos) [2019/10/31]
  4. testcli(已安装): 测试代码生成 Author(kratos) [2019/09/09]
  5. genmc(已安装): mc缓存代码生成 Author(kratos) [2019/07/23]
  6. swagger(已安装): swagger api文档 Author(goswagger.io) [2019/05/05]
  7. 安装工具: kratos tool install demo
  8. 执行工具: kratos tool demo
  9. 安装全部工具: kratos tool install all
  10. 全部升级: kratos tool upgrade all

小小说明:如未安装工具,第一次运行也可自动安装,不需要特别执行install

目前已经集成的工具有:

  • kratos 为本体工具,只用于安装更新使用;
  • protoc 用于快速生成gRPC、HTTP、Swagger文件,该命令Windows,Linux用户需要手动安装 protobuf 工具;
  • swagger 用于显示自动生成的HTTP API接口文档,通过 kratos tool swagger serve api/api.swagger.json 可以查看文档;
  • genmc 用于自动生成memcached缓存代码;
  • genbts 用于生成缓存回源代码生成,如果miss则调用回源函数从数据源获取,然后塞入缓存;