带有内置稳定性保障机制的 Go Web 与 RPC 微服务框架,配套 goctl 代码生成工具。
go-kratos/kratos
一个轻量的 Go 微服务框架,提供统一的 HTTP/gRPC 传输层、中间件和基于 Protobuf 的代码生成。
- Star
- 25,984
- Fork
- 4,182
- 未关闭 Issue
- 121
- 最近提交
- 前天
这是什么?
Kratos 是一个用于构建云原生微服务的 Go 框架。它为传输、中间件、服务注册、配置、日志、编解码和代码生成提供了小而明确的 API,让开发者能把更多精力放在业务逻辑上。
框架采用 API 优先的开发方式:服务通过 Protobuf 定义,Kratos CLI 会根据这些定义生成 HTTP 和 gRPC 的服务端与客户端代码。HTTP 和 gRPC 共用同一套传输层,中间件涵盖恢复、日志、参数校验、链路追踪、指标和鉴权等功能。注册中心、配置和编解码组件均可插拔替换。
项目提供用于快速创建服务的 CLI,contrib 生态则包含注册中心、配置存储、基于 OpenTelemetry 的可观测性等可选集成。日志基于标准库的 log/slog 实现。
核心功能
- 01基于 Protobuf 的开发流程,可生成 HTTP 和 gRPC 代码。
- 02统一的传输层同时支持 HTTP 和 gRPC。
- 03可组合的中间件,覆盖恢复、日志、校验、追踪、指标和鉴权。
- 04注册中心、配置和编解码组件均可插拔。
- 05基于标准库 log/slog 的日志,contrib 包中提供 OpenTelemetry 扩展。
适用场景
- 用 Go 构建通过 gRPC 和 HTTP 通信的一组微服务。
- 用 Protobuf 定义接口,为 Go 团队生成服务端和客户端代码。
- 按标准项目结构快速搭建新的 Go 服务。
快速上手
- 1
按要求安装 Go 工具链、protoc 和 protoc-gen-go
- 2
安装 Kratos 命令行工具
go install github.com/go-kratos/kratos/cmd/kratos/v3@latest - 3
创建名为 helloworld 的新服务
kratos new helloworld - 4
进入项目目录,拉取依赖并运行服务
cd helloworld && go mod tidy && kratos run
使用前须知
- 代码生成需要另外安装 protoc 和 protoc-gen-go。
- 需要 Go 1.25 或更高版本。
收录于专题
标签
常见问题
- kratos 是什么?
- 一个轻量的 Go 微服务框架,提供统一的 HTTP/gRPC 传输层、中间件和基于 Protobuf 的代码生成。 Kratos 是一个用于构建云原生微服务的 Go 框架。它为传输、中间件、服务注册、配置、日志、编解码和代码生成提供了小而明确的 API,让开发者能把更多精力放在业务逻辑上。
- kratos 可以免费使用吗?用的什么许可证?
- kratos 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- kratos 还在维护吗?
- 活跃维护中。kratos 最近一次提交是在 2026年10月21日。
- kratos 适合用来做什么?
- 用 Go 构建通过 gRPC 和 HTTP 通信的一组微服务。 用 Protobuf 定义接口,为 Go 团队生成服务端和客户端代码。 按标准项目结构快速搭建新的 Go 服务。
- kratos 怎么安装和运行?
- 按要求安装 Go 工具链、protoc 和 protoc-gen-go 安装 Kratos 命令行工具: go install github.com/go-kratos/kratos/cmd/kratos/v3@latest 创建名为 helloworld 的新服务: kratos new helloworld 进入项目目录,拉取依赖并运行服务: cd helloworld && go mod tidy && kratos run
- 在哪里获取 kratos?
- 源代码和安装说明在 GitHub 上:https://github.com/go-kratos/kratos
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
3.3万4333GoMIT更新于 前天
Apache Dubbo 的 Java 实现,一个用于构建 RPC 通信与微服务的框架。
4.2万2.6万JavaApache-2.0更新于 3天前
基于 Envoy 实现 Kubernetes Gateway API 的云原生 API 网关,也可用作 AI 网关。
5723830GoApache-2.0更新于 20小时前
基于 Go 语言的高性能 HTTP Web 框架,API 风格类似 Martini,适用于 REST API、Web 应用和微服务。
8.9万8763GoMIT更新于 13天前
面向软件架构的文档工具,用于整理领域、服务、事件、消息和Schema,供团队与AI代理查阅。
2946281TypeScriptOther更新于 3小时前