通过 layout 探索 kratos 运行原理

Posted 月墨夕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过 layout 探索 kratos 运行原理相关的知识,希望对你有一定的参考价值。

创建项目

首先需要安装好对应的依赖环境,以及工具:

  1. go
  2. protoc
    • go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
  3. protoc-gen-go
    • go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
# 创建项目模板
kratos new helloworld

cd helloworld
# 拉取项目依赖
go mod download
# 生成proto模板
kratos proto add api/helloworld/helloworld.proto
# 生成proto源码
kratos proto client api/helloworld/helloworld.proto
# 生成server模板
kratos proto server api/helloworld/helloworld.proto -t internal/service

执行命令后,会在当前目录下生成一个 service 工程,工程骨架如下,具体的工程骨架说明可以访问 layout

运行项目

# 生成所有proto源码、wire等等
go generate ./...

# 编译成可执行文件
go build -o ./bin/ ./...

# 运行项目
./bin/helloworld -conf ./configs

看到如下输出则证明项目启动正常

level=INFO module=app service_id=7114ad8a-b3bf-11eb-a1b9-f0189850d2cb service_name=  version=
level=INFO module=transport/grpc msg=[gRPC] server listening on: [::]:9000
level=INFO module=transport/http msg=[HTTP] server listening on: [::]:8000 

测试接口

curl \'http://127.0.0.1:8000/helloworld/krtaos\'

输出:
{
  "message": "Hello kratos"
}

应用是如何跑起来的?

通过上面的图例

以上是关于通过 layout 探索 kratos 运行原理的主要内容,如果未能解决你的问题,请参考以下文章

Kratos技术系列|从Kratos设计看Go微服务工程实践

源码 kratos 配置热加载分析

kratos使用日记

深入探索Java工作原理:JVM,内存回收及其他

使用 Microsoft 登录的 Ory / Kratos 登录页面?

JVM篇之牛刀小试年轻代参数优化探索