通过 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

通过 layout 探索 kratos 运行原理

运行项目

# 生成所有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 运行原理

通过上面的图例

上一篇:通过写一个原型链继承,独立完成原型链图


下一篇:protoc命令