haiyux's blog

路漫漫其修远兮,吾将上下而求索


  • 首页

  • 归档

  • 关于我

  • 公益404

  • 搜索

kratos v2版本命令行工具使用

时间: 2021-12-26 分类: microservice   go   字数: 971 字 阅读: 2分钟 阅读次数:

kratos命令行工具是什么?

kratos tool 是微服务框架 kratos 的命令行工具,提供创建模板,编译protobuf 文件,运行项目等功能。

使用

下载

go install github.com/go-kratos/kratos/cmd/kratos/v2@latest

查看是否安装成功

kratos -v

kratos version v2.1.3

升级

kratos upgrade

查看帮助

kratos --help
Kratos: An elegant toolkit for Go microservices.

Usage:
  kratos [command]

Available Commands:
  changelog   Get a kratos change log
  completion  generate the autocompletion script for the specified shell
  help        Help about any command
  new         Create a service template
  proto       Generate the proto files
  run         Run project
  upgrade     Upgrade the kratos tools

Flags:
  -h, --help      help for kratos
  -v, --version   version for kratos

Use "kratos [command] --help" for more information about a command.

new命令

kratos new 命令为创建一个kratos项目

参数:

  • -r repo地址 默认为https://github.com/go-kratos/kratos-layout

  • -b git版本 默认为main分支

  • -t 超时时间 默认为60s

  • 也可添加环境变量KRATOS_LAYOUT_REPO 知道远程repo

创建一个项目

kratos new helloworld

因为默认远程仓库地址是 github上的,在国内很容易创建失败,所以要需要设置终端或者git代理(什么是终端代理和git代理可以百度或者google一下)。

当然你也可以使用-r 知道国内仓库 我们提供一个国内镜像https://gitee.com/go-kratos/kratos-layout。

如果嫌弃每次都要-r指定麻烦,也可以把KRATOS_LAYOUT_REPO=https://gitee.com/go-kratos/kratos-layout 加入到path中。

kratos new helloworld -r https://gitee.com/go-kratos/kratos-layout

proto命令

proto命令下有 add client 和 server子命令

add

kratos proto add 为创建一个proto模板

kratos proto add api/helloworld/v2/hello.proto

在目录api/helloworld/v2 下可以看到生成的文件

syntax = "proto3";

package api.helloworld.v2;

option go_package = "helloworld/api/helloworld/v2;v2";
option java_multiple_files = true;
option java_package = "api.helloworld.v2";

service Hello {
    rpc CreateHello (CreateHelloRequest) returns (CreateHelloReply);
    rpc UpdateHello (UpdateHelloRequest) returns (UpdateHelloReply);
    rpc DeleteHello (DeleteHelloRequest) returns (DeleteHelloReply);
    rpc GetHello (GetHelloRequest) returns (GetHelloReply);
    rpc ListHello (ListHelloRequest) returns (ListHelloReply);
}

message CreateHelloRequest {}
message CreateHelloReply {}

message UpdateHelloRequest {}
message UpdateHelloReply {}

message DeleteHelloRequest {}
message DeleteHelloReply {}

message GetHelloRequest {}
message GetHelloReply {}

message ListHelloRequest {}
message ListHelloReply {}

client

kratos proto client 为生成 Proto 代码

使用这个命令需要下载 protobuf 工具 protoc,可以在官网下载对应版本 Protobuf release版本

kratos proto client api/helloworld/v2/

这条命令就可以编译api/helloworld/v2/下的所有.proto文件

如果我们需要 import 其他proto文件 可以在命令后面加上protoc的参数

比如

kratos proto client api/helloworld/v2/ --proto_path=api/helloworld/v2

默认也会把 ./third_party 下import 进来 需要第三方的proto文件 可以放在这里

server

kratos proto server为指定proto文件生成简单的service代码

参数:

  • -t 生成代码的位置 默认是internal/service

比如

kratos proto server api/helloworld/v2/hello.proto -t=internal/service/hello

生成的代码

package service

import (
    "context"

    pb "helloworld/api/helloworld/v2"
)

type HelloService struct {
    pb.UnimplementedHelloServer
}

func NewHelloService() *HelloService {
    return &HelloService{}
}

func (s *HelloService) ListHello(ctx context.Context, req *pb.ListHelloRequest) (*pb.ListHelloReply, error) {
    return &pb.ListHelloReply{}, nil
}

run命令

启动服务

kratos run
#微服务# #kratos#
QQ扫一扫交流

标题:kratos v2版本命令行工具使用

链接:https://www.zhaohaiyu.com/post/microservice/kratos-v2-tool/

作者:haiyux

声明: 本博客文章除特别声明外,均采用 CC BY-NC-SA 3.0许可协议,转载请注明出处!

创作实属不易,如有帮助,那就打赏博主些许茶钱吧 ^_^
WeChat Pay

微信打赏

Alipay

支付宝打赏

项目目录结构
Go泛型入门
  • 文章目录
  • 站点概览
haiyux

haiyux

路漫漫其修远兮,吾将上下而求索

62 日志
8 分类
20 标签
GitHub Email
友情链接
  • kratos
  • farer
  • 我的博客园
  • 李文周
  • 凡梦星尘
标签云
  • Golang 30
  • 微服务 8
  • Mysql 7
  • HTTP 4
  • Protobuf 4
  • 运维 4
  • Grpc 3
  • 设计模式 3
  • Redis 2
  • Ddd 1
  • Docker 1
  • Kratos 1
  • Makefile 1
  • Mq 1
  • Nginx 1
  • Raft 1
  • Thrift 1
  • Traceing 1
  • Wire 1
  • 泛型 1
  • kratos命令行工具是什么?
  • 使用
    • 下载
    • 升级
  • 查看帮助
  • new命令
  • proto命令
    • add
    • client
    • server
  • run命令
© 2010 - 2022 haiyux's blog
Powered by - Hugo v0.98.0 / Theme by - NexT
Storage by 又拍云存储 / 京ICP备19052634号-2
0%