Kratos
Kratos 一套轻量级 Go 微服务框架,包含大量微服务相关功能及工具。
Kratos 一套轻量级 Go 微服务框架,包含大量微服务相关功能及工具。
名字来源于:《战神》游戏以希腊神话为背景,讲述奎托斯(Kratos)由凡人成为战神并展开弑神屠杀的冒险经历。
我们致力于提供完整的微服务研发体验,整合相关框架及工具后,微服务治理相关部分可对整体业务开发周期无感,从而更加聚焦于业务交付。对每位开发者而言,整套 Kratos 框架也是不错的学习仓库,可以了解和参考到微服务方面的技术积累和经验。
go install github.com/go-kratos/kratos/cmd/kratos/v2@latest
kratos upgrade
git clone https://github.com/go-kratos/kratos
cd kratos
make install
# 创建项目模板
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
# 生成所有proto源码、wire等等
go generate ./...
# 运行程序
kratos run
import "github.com/go-kratos/kratos/v2"
import "github.com/go-kratos/kratos/v2/transport/grpc"
import "github.com/go-kratos/kratos/v2/transport/http"
httpSrv := http.NewServer(http.Address(":8000"))
grpcSrv := grpc.NewServer(grpc.Address(":9000"))
app := kratos.New(
kratos.Name("kratos"),
kratos.Version("latest"),
kratos.Server(httpSrv, grpcSrv),
)
app.Run()
提交信息的结构应该如下所示:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
提交信息应按照下面的格式:
Kratos is MIT licensed. See the LICENSE file for details.