kratos v2版本命令行工具使用
使用
下载
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 v2版本命令行工具使用的更多相关文章
- brew 安装指定版本命令行工具 tmux 多版本实现
Homebrew 是 macOS 命令安装工具,其核心库里的命令行在 github homebrew-core 仓库上维护. 核心库命令大概有 5000 条左右,大部分的命令行工具只保留了最新版本的 ...
- 利用VS自带的命令行工具查看和生产PublicKeyToken (转)
使用VS2013(或其他版本)命令行工具,键入:SN -T C:\*****.dll 就会显示出该dll具体的PublicKeyToken数值. 如果该程序集没有强命 名,则不会有PublicKeyT ...
- 利用VS自带的命令行工具查看和生产PublicKeyToken
使用VS2008(或其他版本)命令行工具,键入:SN -T C:\*****.dll 就会显示出该dll具体的PublicKeyToken数值. 如果该程序集没有强命 名,则不会有PublicKeyT ...
- x264源代码简单分析:x264命令行工具(x264.exe)
===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...
- OpenStack命令行工具与API
Openstack命令行工具 我们推荐Openstack命令行工具和Openstack的Dashboard两者结合使用.一些用户由于使用过其他云技术背景的,可能会使用EC2兼容的API,相对于我们需要 ...
- SpringBootCLI 命令行工具
Spring Boot CLI 是用于快速开发 Spring 应用的命令行工具.用来运行 Groovy (与 Java 风格类似)脚本. spring-cli 似乎不是可以各种diy spring-b ...
- 一个小时学会用 Go 编写命令行工具
前言 最近因为项目需要写了一段时间的 Go ,相对于 Java 来说语法简单同时又有着一些 Python 之类的语法糖,让人大呼"真香". 但现阶段相对来说还是 Python 写的 ...
- 『.NET Core CLI工具文档』(一).NET Core 命令行工具(CLI)
说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:.NET Core Command Line Tools 翻译:.NET Core命令行工具 什么是 .NET Core ...
- Linux 性能监控之命令行工具
引言 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因.这个命令行工具列表提供了足够的 ...
随机推荐
- ReentrantLock 公平锁源码 第2篇
Reentrant 2 前两篇写完了后我自己研究了下,还有有很多疑惑和问题,这篇就继续以自问自答的方式写 如果没看过第1篇的可以先看看那个https://www.cnblogs.com/sunanka ...
- 使用APICloud开发app录音功能
mp3Recorder模块封装在iOS.Android下录音直接生成mp3,统一两个平台的录音生成文件,方便双平台之间的交互,减少录音完成后再转码的过程:同时提供分贝波形图显示UI:使用该模块前需 ...
- IDEA 开发工具-插件{[转载]
00 idea 开发工具使用技巧 01 idea插件推荐-- 02 IDEA插件 03 IDEA值得推荐的20款优秀的插件 04 IDEA插件精选」安利一个IDEA骚操作:一键生成方法的序列图
- tsconfig常用配置全解
include, exclude, files配置项 extends配置 compilerOptions下的配置 compilerOptions.allowUnreachableCode compil ...
- 第k小 来源:牛客网
题目 链接:https://ac.nowcoder.com/acm/contest/28886/1003 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K, ...
- html元素height(width)是怎么确定的?
1.若height是确定的(比如height:100px),则height直接可确定(还受min-height,max-height影响,见height,min-height,max-heigth的作 ...
- mysql 之full join
首先,mysql中是不支持full join的,如果要实现类似的功能可以用union all,union会剔除重复.以下是实现实例 create table if not exists t1(`id` ...
- MGR及GreatSQL资源汇总
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 简要说明 MGR相关课程 <实战MGR> <深入浅出MGR> MGR学习过程出现故障或疑问咨 ...
- CSP-J2021 题解
分糖果 题意 选择L~R中的某个数 , 使得x mod k的结果最大. 思路 分两种情况考虑: 若 L 和 R 对 K 取模后在同一区间,则必然在 x=R 位置取到最大值: 否则 L~R 必然跨越多个 ...
- NC20242 [SCOI2005]最大子矩阵
题目链接 题目 题目描述 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大. 注意:选出的k个子矩阵 不能相互重叠. 输入描述 第一行为n,m,k(1 ≤ n ≤ 100 ...