使用

下载

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

原文地址

最新文章

  1. C# 开源框架
  2. 关于Hibernate5.x的那点事
  3. 清北暑假模拟day2 国
  4. IOS高级编程之二:IOS的数据存储与IO
  5. iptables 详解
  6. [Hibernate] - Interceptors and events
  7. 使用ajax技术无刷新动态调用股票信息
  8. mysqldump 使用 --set-gtid-purged
  9. 类名.class与类名.this详解
  10. (php)生成指定个数的随机红包
  11. Python监控网站运行状况
  12. JVM中锁优化,偏向锁、自旋锁、锁消除、锁膨胀
  13. poj 1318Word Amalgamation
  14. Linux命令pmap
  15. iis发布网站问题-由于权限不足而无法读取配置文件,无法访问请求的页面
  16. [Linux] 一个前端必会的 Nginx 免费教程-在虚拟机中用deepin测试
  17. Linux万能快捷键与命令
  18. Linux平台安装MongoDB及使用Docker安装MongoDB
  19. AI学习吧-REDIS-常识
  20. springboot系列十五、springboot集成PageHelper

热门文章

  1. 编写可维护的webpack配置
  2. Pytorch Tensor 维度的扩充和压缩
  3. Pytorch 中 tensor的维度拼接
  4. 可落地的DDD(7)-战术设计上的一些误区
  5. flex 我所理解不够深刻的内容
  6. 2511-Druid监控功能的深入使用与配置-如何记录监控数据(基于logback)
  7. vue中axios配置代理的俩种方式及优缺点
  8. 【深入学习.Net】.泛型集合【体检管理系统】
  9. JavaDoc文档生成详细操作
  10. Windows 电脑杀毒简单有效的方式