使用

下载

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 clientserver子命令

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版本命令行工具使用的更多相关文章

  1. brew 安装指定版本命令行工具 tmux 多版本实现

    Homebrew 是 macOS 命令安装工具,其核心库里的命令行在 github homebrew-core 仓库上维护. 核心库命令大概有 5000 条左右,大部分的命令行工具只保留了最新版本的 ...

  2. 利用VS自带的命令行工具查看和生产PublicKeyToken (转)

    使用VS2013(或其他版本)命令行工具,键入:SN -T C:\*****.dll 就会显示出该dll具体的PublicKeyToken数值. 如果该程序集没有强命 名,则不会有PublicKeyT ...

  3. 利用VS自带的命令行工具查看和生产PublicKeyToken

    使用VS2008(或其他版本)命令行工具,键入:SN -T C:\*****.dll 就会显示出该dll具体的PublicKeyToken数值. 如果该程序集没有强命 名,则不会有PublicKeyT ...

  4. x264源代码简单分析:x264命令行工具(x264.exe)

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

  5. OpenStack命令行工具与API

    Openstack命令行工具 我们推荐Openstack命令行工具和Openstack的Dashboard两者结合使用.一些用户由于使用过其他云技术背景的,可能会使用EC2兼容的API,相对于我们需要 ...

  6. SpringBootCLI 命令行工具

    Spring Boot CLI 是用于快速开发 Spring 应用的命令行工具.用来运行 Groovy (与 Java 风格类似)脚本. spring-cli 似乎不是可以各种diy spring-b ...

  7. 一个小时学会用 Go 编写命令行工具

    前言 最近因为项目需要写了一段时间的 Go ,相对于 Java 来说语法简单同时又有着一些 Python 之类的语法糖,让人大呼"真香". 但现阶段相对来说还是 Python 写的 ...

  8. 『.NET Core CLI工具文档』(一).NET Core 命令行工具(CLI)

    说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:.NET Core Command Line Tools 翻译:.NET Core命令行工具 什么是 .NET Core ...

  9. Linux 性能监控之命令行工具

    引言 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因.这个命令行工具列表提供了足够的 ...

随机推荐

  1. 网络通讯之Socket-Tcp(一)

    网络通讯之Socket-Tcp  分成3部分讲解: 网络通讯之Socket-Tcp(一): 1.如何理解Socket 2.Socket通信重要函数 网络通讯之Socket-Tcp(二): 1.简单So ...

  2. 【docker专栏3】docker基础概念-容器、镜像以及引擎组成部分

    一.docker镜像与容器 docker镜像是一个可执行的静态独立软件包,包含打包程序代码和软件运行环境等文件.如:代码.运行时库.环境变量和配置文件等都包含在其中.容器是镜像的运行时状态(镜像中的软 ...

  3. .netcore 定制化项目开发的思考和实现

    今年年初进了一家新公司,进入之后一边维护老项目一边了解项目流程,为了接下来的项目重做积累点经验. 先说下老项目吧,.net fx 3.5+oracle...... 在实际维护中逐渐发现,老项目有标准版 ...

  4. 在Mac Os(苹果)上用手机抓包软件Charles抓取微信小程序中的高清无水印视频

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_118 手机抓包是一名测试工程师常备的技能,比如我想查看一个接口请求的参数.返回值,还有移动设备上的http请求.https请求,这 ...

  5. Eplan创建符号

    1.打开Eplan P8 ,新建一个名为"新项目"的项目,然后选择菜单"工具"----"主数据"-----"符号库"-- ...

  6. 6.22 NOI 模拟

    \(T1\)递归 给出 \(Thue-Morse\) 序列的定义三 每次 \(0\rightarrow 01\),\(1\rightarrow 10\) \(0\rightarrow 01 \righ ...

  7. 1.2 Hadoop快速入门

    1.2 Hadoop快速入门 1.Hadoop简介 Hadoop是一个开源的分布式计算平台. 提供功能:利用服务器集群,根据用户定义的业务逻辑,对海量数据的存储(HDFS)和分析计算(MapReduc ...

  8. 『叶问』#41,三节点的MGR集群,有两个节点宕机后还能正常工作吗

    『叶问』#41,三节点的MGR集群,有两个节点宕机后还能正常工作吗 每周学点MGR知识. 1. 三节点的MGR集群,有两个节点宕机后还能正常工作吗 要看具体是哪种情况. 如果两个节点是正常关闭的话,则 ...

  9. 困扰所有SAP顾问多年的问题终于解决了

    相信每个从事SAP的顾问都会遇到这样的场景:听着歌,录着SAP数据,写着ABAP代码,突然一切都消失了. 是的,SAP GUI又崩溃闪退了. 可能你还一脸懵逼不知道发生什么事情,当你重新登录系统的时候 ...

  10. vue项目打包后使用reverse-sourcemap反编译到源码(详解版)

    首先得说一下,vue项目中productionSourceMap这个属性.该属性对应的值为true|false.   当productionSourceMap: true,时: 1.打包后能看到xxx ...