Go (Golang) 与微服务:从构想到生产
Go (Golang) 与微服务:从构想到生产
简介:
本书是一本实用指南,面向希望掌握使用 Go (Golang) 语言构建微服务架构的开发者。与许多理论著作不同,作者侧重于真实示例和每个开发者在从单体架构转向微服务时都会遇到的典型任务。
本书内容简介
本书涵盖了使用 Go 开发微服务的完整生命周期:从设计和实现,到部署和监控。您将学习如何利用 Go 的内置特性(goroutine、channel、接口)正确组织代码,以及哪些模式在分布式环境中效果最佳。
- 微服务设计:如何将单体应用拆分为服务,定义服务边界,并选择交互协议(REST、gRPC、GraphQL)。
- 数据处理:分布式系统中的事务管理,以 Go 为例的 Saga 模式、CQRS 和事件溯源。
- 网络与通信:编写可靠的 HTTP/gRPC 客户端和服务器,错误处理、超时和重试机制。
- 容器化与编排:为 Go 应用构建轻量级 Docker 镜像,部署到 Kubernetes,使用 Helm Chart。
- 可观测性:Go 微服务中的日志记录(结构化日志)、指标监控(Prometheus)和链路追踪(OpenTelemetry)。
- 测试:单元测试、基于容器的集成测试(testcontainers)、压力测试。
本书适合谁?
- 希望学习 Go 进行后端开发和微服务的 Python 开发者。
- 正在编写单体应用并希望转向微服务架构的 Go 开发者。
- 希望更深入了解 Go 服务内部结构的 DevOps 工程师。
- 为新的分布式系统选择技术的团队领导和架构师。
阅读后您将学到什么?
- 如何编写符合社区最佳实践的、地道的 Go 微服务代码。
- 如何在不使用第三方库的情况下实现服务发现、断路器与限流。
- 如何在 Go 微服务中高效使用 PostgreSQL、Redis 和 Kafka。
- 如何使用 GitHub Actions 为 Go 项目配置 CI/CD 流水线。
- 如何避免在高并发系统中使用 goroutine 和内存时的常见错误。
作者:阿列克谢·彼得罗夫,拥有 10 年经验的高级后端开发者。曾在大型金融科技公司工作,负责将单体应用迁移至微服务。运营关于 Go 和架构的博客,并在会议上发表演讲。
本书既适合 Go 新手,也适合经验丰富的开发者——每个人都能找到有用的实践和现成的解决方案。所有代码示例均可在 GitHub 仓库中获取。