微服务架构设计模式豆瓣PDF电子书下载完整高清版|百度网盘下载

编辑评论:

微服务架构设计模式是教架构师和程序员使用微服务架构成功开发应用程序。这本书不仅讨论了微服务架构的好处,还描述了它们的缺点。读者将掌握如何在使用单体架构和使用微服务架构之间做出正确的权衡。

20201126161000.png

编辑推荐

谁应该阅读:这本书侧重于架构和开发,适合负责开发和交付软件的任何人(例如开发人员、架构师、CTO 等)。使用 Java 语言和 Spring 框架的示例代码

由全球十大软件架构师之1、微服务架构先驱、Java 开发者社区意见领袖 Chris Richardson 撰写,本书旨在帮助架构师和程序员学习使用微服务架构成功开发应用程序。本书描述了如何解决我们将面临的诸多架构设计挑战,包括如何管理分布式数据,还描述了如何将单体应用重构为微服务架构,涵盖了 44 种架构设计模式,系统地解决了服务拆分、事务管理、查询和跨服务通信。本书不是倡导微服务架构的宣言。作者不仅介绍了微服务的原理和原理,还详细讲解了实际实现中的架构设计模式,这将使您了解微服务架构,它的优缺点,以及应该如何使用微服务架构。本书将帮助您建立微服务的全局视图,并学习在复杂情况下做出正确的架构选择和权衡。

本书将教您如何开发和部署生产级微服务架构应用程序。这套有价值的架构设计模式建立在数十年的分布式系统经验之上,Chris 还添加了用于开发服务并将它们组合到在现实条件下可扩展和可靠执行的系统的新模式。本书不仅仅是一个模式目录,它还提供了经验驱动的建议来帮助您设计、实现、测试和部署基于微服务的应用程序。

本书包含:

如何(以及为什么)使用微服务架构

服务拆分策略

与事务管理和查询相关的模式

有效的测试策略

部署模式包括容器和无服务器

本书面向熟悉标准企业应用程序架构的开发人员编写,使用 Java 语言和 Spring 框架编写所有示例代码。

简介

成功开发基于微服务架构的应用软件,需要掌握一系列新的架构思想和实践。在这本独一无二的书中,世界十大软件架构师之1、微服务架构先驱 Chris Richardson 收集、分类和解释了 44 种架构设计模式,用于解决服务拆分、事务管理、查询和跨服务通信等问题和其他挑战。

本书的目标是教架构师和程序员使用微服务架构成功开发应用程序。

这本书不仅讨论了微服务架构的好处,还描述了它们的缺点。读者将掌握如何在使用单体架构和使用微服务架构之间做出正确的权衡。

【谁应该读这本书】

本书侧重于架构和开发,面向负责开发和交付软件的任何人(例如,开发人员、架构师、CTO 等)。

本书侧重于解释微服务架构的设计模式和其他概念。我的目标是让您轻松阅读本书,无论您的读者使用什么堆栈。您只需要熟悉企业应用程序架构和设计的基础知识。特别是,您需要了解三层架构、Web 应用程序设计、关系数据库、使用消息和基于 REST 的进程间通信等概念,以及应用程序安全的基础知识。本书中的代码示例使用 Java 和 Spring 框架。要充分利用它们,读者应该对 Spring 框架有所了解。

【本书内容安排】

这本书由 13 章组成。

第 1 章描述了所谓的“单体地狱”的症状,即当单体应用程序超出其架构时出现的问题,可以通过采用微服务架构来规避。本章还提供了微服务架构模式语言的概述,这是本书大部分内容的主题。

第 2 章解释了为什么软件架构很重要,描述了可用于将应用程序分解为服务集合的模式,并解释了如何克服在此过程中遇到的各种障碍。

第 3 章介绍了微服务架构中强大的进程间通信的几种模式,解释了为什么异步和基于消息的通信通常是最佳选择。

第 4 章描述了如何使用 Saga 模式来维护服务之间的数据一致性。 Saga 是通过传递异步消息协调的一系列本地事务。

第 5 章描述了如何使用领域驱动设计 (DDD) 聚合和领域事件等模式为服务设计业务逻辑。

第 6 章以第 5 章为基础,解释了如何使用事件溯源模式开发业务逻辑,这是一种以事件为中心的设计方法,用于构建业务逻辑和持久化领域对象。

第 7 章介绍了如何使用 API 组合模式或命令查询职责分离 (CQRS) 模式,它们用于查询分散在多个服务中的数据。

第 8 章介绍了用于处理来自各种外部客户端的请求的外部 API 模式,例如移动应用程序、基于浏览器的 JavaScript 应用程序和第三方应用程序。

第 9 章是微服务自动化测试技术两章中的第一章,介绍了测试金字塔等重要测试概念,描述了测试套件中每种测试类型的相对比例,并展示了如何编写构成基础的单元测试的测试金字塔。

第 10 章以第 9 章为基础,描述了如何在测试金字塔中编写其他类型的测试,包括集成测试、消费者契约测试和组件测试。

第 11 章涵盖了开发生产就绪服务的各个方面,包括安全性、外部化配置模式和服务可观察性模式。服务可观察性模式包括日志聚合、应用程序指标和分布式跟踪。

第 12 章描述了可用于部署服务的各种部署模式,包括虚拟机、容器和无服务器模式。它还介绍了使用服务网格的好处,服务网格是处理微服务架构中服务之间通信的网络软件层。

第 13 章描述了如何通过采用 Strangler 模式逐步将单体架构重构为微服务架构,该模式指的是以服务的形式实现新功能,从单体架构中提取模块以将其转换为服务。

在阅读这些章节的过程中,读者将了解微服务架构的不同方面。

关于作者

克里斯·理查森

全球十大软件架构师之一,《POJOS in Action》等技术大作的作者,著名开源项目Cloud Foundry和Eventuate的创始人。研究领域包括微服务架构设计、分布式数据管理、事件驱动应用架构、领域驱动设计、持续交付、Spring框架、Scala、NoSQL数据库等。

于勇

他在技术圈工作多年。曾任微软技术布道者、VMware Cloud Foundry生态建设负责人。有幸引领国内集装箱技术的创业浪潮。目前落户加拿大,专注于微服务架构、云原生应用等领域。

Chris和于勇在VMware全球开发者关系团队合作多年,现在合作为国内企业客户提供微服务相关的咨询和培训服务。他们的中文网站是:www.chrisrichardson.cn

单体架构的好处

在FTGO开发初期,应用比较少,单体架构有以下好处。

“应用程序开发很简单:IDE 和其他开发工具只需要构建这个单一的应用程序。

易于对应用程序进行大规模更改:可以更改代码和数据库架构,然后构建和部署。

测试相对简单直观:开发人员只需要编写几个端到端的测试,启动应用程序,调用 REST API,然后使用 Selenium 之类的工具测试用户界面。

部署很简单:开发人员只需将 WAR 文件复制到安装了 Tomcat 的服务器上。

轻松扩展:FTGO 可以运行多个实例,由负载平衡器调度。但是,随着时间的推移,开发、测试、部署和扩展都变得更加困难

阅读剩余
THE END