Go分布式服务
256 页
Chinese
PDF
4.5

Go分布式服务

Go分布式服务

作者:

年份:

简介:

引言

Travis Jeffrey所著的《Distributed Services with Go》一书于2021年出版,立即引起了使用Go(Golang)语言的开发者的关注。这并非又一本语法参考书,而是一本关于构建真实分布式系统的实用指南。作者引导读者从编写一个简单的HTTP服务器开始,一直到在Kubernetes中部署一个完整的、具备容错能力的服务,其间使用了gRPC、Raft协议以及现代的可观测性实践。

全书共256页,面向已经熟悉Go基础并希望深入学习分布式应用架构的读者。Travis Jeffrey是一位经验丰富的工程师,曾在Heroku和其他科技公司工作,因此他的建议都基于实际经验。

本书内容

本书的核心思想是展示如何“从零开始”构建一个分布式服务,仅使用Go的标准工具和库,然后逐步添加功能:复制、服务发现、安全性和部署。每一章都专注于一个特定方面:

  • 第1-2章:gRPC和Protocol Buffers基础——如何定义API并生成代码。
  • 第3-4章:服务器和客户端的实现、错误处理、数据流传输。
  • 第5章:Raft共识算法介绍及其使用hashicorp/raft库的实现。
  • 第6章:日志复制与容错保障。
  • 第7章:服务发现与动态配置。
  • 第8章:安全性:TLS、身份验证与授权。
  • 第9章:可观测性:结构化日志记录、指标监控(Prometheus)和链路追踪(OpenTelemetry)。
  • 第10章:在Kubernetes中部署:编写Dockerfile、清单文件、Helm图表。

每章都包含可运行和修改的实用代码示例。在本书结尾,读者将获得一个用于存储和复制日志的完整分布式服务。

目标读者

本书适合中级Go开发者,他们已能编写简单的Go应用,并希望转向构建分布式系统。本书同样适用于:

  • 对微服务架构感兴趣的后端工程师。
  • 希望更好理解服务内部工作原理的DevOps专家。
  • 分布式计算课程的学生和教师。

阅读本书最好了解Go的基础知识(goroutine、channel、接口),并对网络协议(TCP/IP、HTTP)有基本了解。不要求预先掌握Kubernetes和gRPC——作者会从零开始讲解。

读者将学到什么

阅读本书后,您将能够:

  • 使用Protocol Buffers设计和实现gRPC API。
  • 嵌入Raft共识算法以实现容错。
  • 使用etcd或Consul客户端配置服务发现。
  • 通过TLS添加加密和身份验证。
  • 集成结构化日志记录、指标监控和分布式链路追踪。
  • 将应用打包成Docker镜像并部署到Kubernetes。
  • 为分布式组件编写测试。

优点

本书的主要优点之一是实用性。您不仅仅是阅读理论,而是编写可以立即使用的代码。作者使用了最新版本的库和工具(Go 1.16+、gRPC、Kubernetes)。

本书结构清晰:每章以问题陈述开始,以总结结束。代码附有注释,复杂概念(例如Raft)也得到详细解释。

推荐