微服务:开发与重构模式
520 页
Chinese
PDF
4.5

微服务:开发与重构模式

微服务:开发与重构模式

作者:

年份:

简介:

引言

克里斯·理查森的《Microservices Patterns》(中文译名《微服务:开发与重构模式》)一书,可以说是2018年出版的最为全面的微服务系统设计著作。作者是著名的架构师、Saga模式的创建者以及Eventuate平台的创始人。这本书已成为成千上万从单体架构转向微服务的开发者的案头必备。尽管书中的示例是用Java(使用Spring Cloud和Netflix OSS)编写的,但所描述的模式是通用的,适用于包括Python在内的任何语言。

本书内容

全书共13章,分为三部分。第一部分介绍微服务架构的基础知识、从单体架构迁移的动机以及基本概念。第二部分是本书的核心:详细分析了20多种模式,按问题领域分组:

  • 服务拆分(按业务能力、按DDD子域);
  • 通信(通过REST/gRPC同步,通过消息异步);
  • 数据管理(Saga、CQRS、事件溯源);
  • 服务发现(服务注册表、客户端发现);
  • 容错性(断路器、隔板、重试);
  • 安全性(API网关、访问令牌);
  • 可观测性(健康检查、日志聚合、分布式追踪);
  • 部署(Docker、Kubernetes、Serverless)。

第三部分专门讨论将单体架构重构为微服务——绞杀者策略、模块提取、逐步迁移。

适合读者

本书面向软件架构师和经验丰富的开发者,他们已有构建分布式系统的经验。初学者可能会觉得困难——需要具备Java、Spring框架、数据库和网络协议的知识。然而,对于熟悉Flask/FastAPI和Docker的Python开发者来说,这些材料也很有用:所有模式都在概念层面进行解释,Java代码也很容易转化为Python。

读者将学到什么

  • 如何利用DDD和限界上下文正确地将应用程序分解为微服务;
  • 如何使用Saga模式(编排和协调)组织服务间的事务;
  • 如何为复杂查询和审计实现CQRS和事件溯源;
  • 如何构建API网关、负载均衡和服务发现;
  • 如何使用断路器和隔板确保容错性;
  • 如何配置集中式日志记录、指标和追踪;
  • 如何在Docker和Kubernetes中部署微服务;
  • 如何在不中断业务的情况下安全地重构单体架构。

优势

本书的主要优点是系统性。理查森不仅列举了模式,还将其构建成一个逻辑地图:每个问题(例如,“如何在服务之间保持数据一致性?”)都提供了多种解决方案,并分析了权衡。书中包含大量来自实际案例(亚马逊、Netflix、Uber)的真实示例。特别值得一提的是关于重构的章节——这是作者们通常回避的罕见主题。

Java代码结构良好,使用了现代库(Spring Boot、Spring Cloud、Hystrix、Kafka)。对于Python社区来说,这是一个绝佳的机会来了解相同模式在Java生态系统中是如何实现的,并将最佳实践迁移到自己的技术栈中。

推荐人群

所有设计微服务系统、处理分布式数据或计划从单体架构迁移的人都必须阅读本书。它既适用于架构师,也适用于技术主管和高级开发者。如果您使用Python编写代码,但正在使用微服务——请不要犹豫。

推荐