go 微服务框架 kratos 学习
人民对美好生活的向往,就是我们的奋斗目标。
一、简介
kratos是一个由Bilibili开源的Go语言微服务框架。
官网:https://go-kratos.dev/
二、环境搭建
1、go安装,在笔记《golang学习之hello world》中有详细记录
2、protoc安装,在笔记《golang 学习之 go rpc 通信》中有详细记录
3、kratos安装,安装命令如下
go install github.com/go-kratos/kratos/cmd/kratos/v2@latest
安装完成后可以在gopath/bin目录下看到kratos。执行kratos 版本查看命令:kratos -v
kratos -v
kratos version v2.7.0
三、Hello World
1、初始化项目 helloworld:-r 使用指定项目模板生成项目,执行如下命令后可以看到生成的helloworld目录。
kratos new helloworld -r https://gitee.com/go-kratos/kratos-layout.git
2、进入项目目录helloworld,拉取项目依赖项。
go mod tidy
3、拉取依赖注入模块,kratos使用了依赖注入功能可以很好地解决组件之间的耦合,以及提高代码维护性。
go get github.com/google/wire/cmd/wire
4、生成项目go文件,kratos包含gRPC功能,proto 需要生成 go 文件。
go generate ./..
5、运行项目,可以看到启动了两个服务,一个9000端口gRPC服务,一个8000端口HTTP服务。
# 项目运行命令
kratos run
# 运行结果
DEBUG msg=config loaded: config.yaml format: yaml
INFO ts=2023-09-17T21:29:22+08:00 caller=grpc/server.go:205 service.id=DESKTOP-HLON0I5 service.name= service.version= trace.id= span.id= msg=[gRPC] server listening on: [::]:9000
INFO ts=2023-09-17T21:29:22+08:00 caller=http/server.go:302 service.id=DESKTOP-HLON0I5 service.name= service.version= trace.id= span.id= msg=[HTTP] server listening on: [::]:8000
6、浏览器访问本地地址
http://localhost:8000/helloworld/kratos