Go开发者如何快速入坑微服务go-learning Kratos入门10分钟搭建HelloWorld服务完整教程【免费下载链接】go-learning一个存放Go语言/计算机相关学习资料的仓库项目地址: https://gitcode.com/gh_mirrors/go/go-learninggo-learning 是一个存放 Go 语言与计算机相关学习资料的开源仓库其中内置了完整的 Kratos 微服务教程和 HelloWorld 示例项目。本文带你以 10 分钟为限从零搭建一个同时支持 HTTP 和 gRPC 的 HelloWorld 微服务快速掌握 Go 微服务开发的工程化姿势 为什么用 Kratos 入门 Go 微服务Kratos 是哔哩哔哩开源的轻量级 Go 微服务框架核心特点一句话概括用 Protobuf 定义 API用 Wire 注入依赖用 DDD 六边形架构组织代码。它帮你解决了微服务开发的四大痛点痛点Kratos 的解法API 文档和客户端代码靠手写Proto 文件一键生成 HTTP/gRPC 双端代码依赖关系一团乱麻Wire 编译期依赖注入无反射、易测试项目结构没有章法内置 api / service / biz / data 分层模板配置、日志、错误码各写各的统一的 config、log、errors 组件对于新手来说Kratos 最大的价值是给你一套业界公认的工程结构照着做就能写出能上生产的代码骨架。获取学习仓库教程和示例都存放在 go-learning 仓库中先把它 clone 到本地git clone https://gitcode.com/gh_mirrors/go/go-learningKratos 入门相关资料集中在以下目录建议边看边动手图文教程doutok-course/basic-knowledge/kratos-intro/README.md最简可运行示例doutok-course/basic-knowledge/kratos-intro/main.go完整示例项目本文主角doutok-course/basic-knowledge/kratos-intro/myproject/10 分钟搭建 HelloWorld 服务第 1 步安装 Kratos CLI约 2 分钟Kratos 提供了kratos命令行工具负责创建项目骨架和生成代码go install github.com/go-kratos/kratos/cmd/kratos/v2latest同时安装 Proto 代码生成所需的插件go install google.golang.org/protobuf/cmd/protoc-gen-golatest go install google.golang.org/grpc/cmd/protoc-gen-go-grpclatest go install github.com/go-kratos/kratos/cmd/protoc-gen-go-http/v2latest go install github.com/go-kratos/kratos/cmd/protoc-gen-go-errors/v2latest第 2 步创建项目并定义 API约 3 分钟kratos new myproject cd myproject kratos proto add api/helloworld/v1/greeter.proto在生成的greeter.proto里只需声明一个SayHello接口并用注解标注它的 HTTP 路由示例项目里对应api/helloworld/v1/greeter.protoservice Greeter { rpc SayHello (HelloRequest) returns (HelloReply) { option (google.api.http) { get: /helloworld/{name} }; } }第 3 步一键生成代码约 1 分钟这是 Kratos 最省心的一步一条命令同时生成 gRPC 服务端、HTTP 路由和业务层骨架kratos proto server api/helloworld/v1/greeter.proto -t internal/service执行后你会得到完整的分层项目internal/service里的 GreeterService、internal/biz里的 GreeterUsecase、internal/data里的 GreeterRepo全部自动生成无需手写。第 4 步启动服务并验证约 2 分钟go run ./cmd/myproject服务默认监听两个端口配置见configs/config.yamlHTTP :8000—— 浏览器直接访问gRPC :9000—— 供其他微服务调用验证一下curl http://localhost:8000/helloworld/kratos # 返回: {message:Hello kratos}看到Hello kratos的那一刻你就已经跑通了一个标准的 Go 微服务 ✅读懂 HelloWorld 背后的分层架构生成的项目不是黑盒。请求进来后会依次穿过四层各干各的事请求 → server层(HTTP/gRPC) → service层(参数组装) → biz层(业务逻辑) → data层(数据存取)server 层只负责接收请求、挂载中间件日志、限流、链路追踪不写业务service 层把 Proto 请求对象转成 biz 层的领域对象biz 层核心业务规则所在GreeterUsecase通过接口依赖GreeterRepo与数据库完全解耦data 层实现GreeterRepo接口真正对接 MySQL / Redis这套结构就是 DDD 六边形架构换数据库、加缓存、改协议都只动对应的那一层。示例代码可以对着仓库里的myproject/internal/目录逐层阅读每个目录还配了 README 说明。启动链路从 main.go 到 Hello 响应服务的启动过程在cmd/myproject/main.go里核心就 4 步加载配置从configs/config.yaml读取 HTTP/gRPC 地址和超时依赖注入通过 Wire 把 server、service、biz、data 四层自动组装成一个*kratos.App注册服务把 GreeterService 挂到 HTTP 和 gRPC 两个服务器上启动监听app.Run()阻塞运行直到进程退出Wire 注入代码在cmd/myproject/wire.go定义、wire_gen.go生成编译期完成依赖拼装运行零开销。如果对依赖注入原理感兴趣仓库的di/目录准备了从手写依赖到Wire 自动注入的渐进式对比示例di/no_di/、di/simple_di/、di/wire_di/值得一读。下一步进阶学习路径建议HelloWorld 跑通只是开始go-learning 仓库为不同深度准备了递进式练习博客服务实战doutok-course/basic-knowledge/blog-demo/backend/blog-service/—— 在 HelloWorld 基础上加入 CSV 数据源体验完整的数据层读写事务与数据库kit/transaction/helloworld/—— 在 Kratos 项目中接入 MySQL 和事务处理基础补课doutok-course/basic-knowledge/golang-intro/Go 语法速览和docker-intro/用 Docker 部署 Kratos 服务并发专题concurrence/—— 微服务性能的必修课学习建议先通读kratos-intro/README.md教程再亲手把myproject从 0 敲一遍别只复制粘贴最后照着 blog-demo 改造自己的业务三天内你就能独立交付一个 Kratos 微服务项目。小结收获对应章节5 分钟装好 Kratos CLI 工具链第 1 步Proto 定义 一键生成双协议服务第 2、3 步跑通 HTTP gRPC HelloWorld第 4 步理解 api/service/biz/data 分层架构分层架构章节掌握清晰的进阶路线学习路径章节微服务没有想象中那么远一个 Proto 文件、三条命令、一次 curl你就已经站在了 Go 微服务开发的起跑线上。快去把 HelloWorld 跑起来吧【免费下载链接】go-learning一个存放Go语言/计算机相关学习资料的仓库项目地址: https://gitcode.com/gh_mirrors/go/go-learning创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考