书评 -- 微服务架构设计模式

  • microservice
  • sysdesign
  • pattern

posted on 10 Apr 2023 in series book_review

这本书真是手把手教你怎么落地微服务, 怎么从单体应用重构到微服务, 细到代码层面的实现考量. 而 且里里外外方方面面都有讲到:

  • 服务拆分: DDD 子域的应用
  • 进程间通信: 服务发现, 异步消息, 可靠发送 (发件箱, 日志拖尾)
  • 分布式事务: saga
  • 业务逻辑如何实现: DDD 的聚合
  • 实现持久化: 事件溯源
  • 实现查询: api 网关和 cqrs
  • 对外实现接口: 后端前置, graphql
  • 各种测试策略
  • 切面编程和服务网格实现边缘功能
  • 如何使用绞杀者将单体重构到微服务

我认为, 正在做微服务的这本书不可不看. 另外一本则是 «持续布署», 从上家公司的经历来看, 布署流水线 和测试没做好的话, 就去做微服务实在是给开发人员找不痛快.

这本书讲解偏 Java 技术栈, 很多示例也严重依赖 Java 语言本身的特性. 另外也能看出作者强推他自己的 微服务基底框架的倾向. 但有关对微服务本身要面临的各种问题和相应方案权衡的探讨, 是可以应用在任何技 术栈上的. 只不过可能要自己额外多作一些实现, 如果真是这样, 应该也一件很有意思事儿.

作者讲述的是有些啰嗦和重复的, 同时也非常细节. 读起来也很快. 配图相当多也画的非常能说明问题. 我感觉这是 Manning 这一系列的书都有的特色: 细, 全, 啰嗦, 配图精彩.

至于翻译, 一开始很觉得译者翻译用心, 质量很高. 但越到后来越多的错误, 比如 “application” 应为 “申请” 的时候, 译为了 “应用”, “legend” 代表 “图例” 的时候, 译为了 “传统的”. 而且相同的名词, 却时时有不同的译法, 甚至有时保留英文, 有时又译成中文, 这种不一致会让阅读时磕磕跘跘的. 应该时挂 名换人了吧, 谁知道. 即使这样, 也算技术译作中质量比较好的了吧, 比读英文快些. 但还是备一本英文吧, 否则有些地方是看不明白的.

至于勘误就不贴了. 帖上自己的阅读笔记, 笔记中图换成了英文版中的图:

https://unifreak.github.io/note/note-microservice-patterns.