微服务架构原理与开发实战作者: 张刚 出版时间:2021年版内容简介 *近几年软件开发方法层出不穷,微服务作为一种主流的架构模式一直热度不减。为了帮助广大程序员们更好更快地理解微服务的概念,学习微服务在项目中的实践,本书全面阐述了微服务架构模式的特点、架构思路、设计理念、技术框架及具体的代码实战,以软件开发过程中遇到的各种疑难问题为切入点,逐步解析微服务架构是如何设计及解决这些问题的。书中使用主流技术框架进行演示,采用通俗易懂的图例和真实的项目事例来阐述遇到问题时的解决思路和做法,并附有具体的实践演示,读者可以跟随本书进行代码试验,理解并运用微服务技术架构的理解和运用,了解微服务的适应场景和优势。本书实用性强,是目前市面上关于微服务实践方面介绍得较为全面的书籍之一,适合想要了解和学习微服务的初、高级程序员和架构师等不同水平的读者阅读。目录目 录第1章 微服务概述 0011.1 微服务的概念 0021.2 微服务与SOA 0031.2.1 SOA的定义 0031.2.2 微服务与SOA的异同点 0041.2.3 服务调用设计 0051.3 单体式架构 0071.3.1 单体式架构概述 0071.3.2 单体式架构的痛点 0081.3.3 经典的MVC架构模式 0101.4 微服务架构概述 0121.4.1 微服务能解决的问题 0121.4.2 微服务架构的特点 0131.4.3 微服务架构的优势 0161.5 微服务的挑战 0171.5.1 使用微服务的难点 0181.5.2 微服务不是银弹 019第2章 微服务架构设计 0202.1 微服务架构的难点 0212.2 架构设计 0222.2.1 了解什么才是架构 0222.2.2 软件设计的3个阶段 0232.2.3 软件架构的目的与方法 0242.3 微服务的核心组件 0282.3.1 微服务的远程调用方式 0282.3.2 HTTP 通信方法 0312.3.3 服务的注册与发现 0372.3.4 负载均衡 044第3章 Spring Cloud 相关组件 0503.1 统一配置中心 0513.1.1 配置中心的难点 0513.1.2 Spring Cloud Config框架 0533.1.3 集成消息总线 0583.2 断路器 0603.2.1 服务熔断 0603.2.2 服务降级 0643.2.3 线程隔离 0653.2.4 请求合并 0683.2.5 请求缓存 0733.2.6 Hystrix注解 0753.2.7 Hystrix 控制台 0783.3 健康监控 0803.4 分布式链路跟踪 0843.4.1 设计要素和术语 0843.4.2 Spring Cloud Sleuth 链路监控 085第4章 契约测试 0884.1 契约测试概述 0894.2 契约测试与TDD 0914.2.1 TDD的定义 0914.2.2 TDD的价值 0944.2.3 TDD的种类 0954.2.4 契约测试也是TDD 0964.3 契约测试与独立交付 0974.3.1 独立交付 0974.3.2 集成测试 0984.3.3 真正的独立交付 1004.4 契约测试的相关技术与用法实战 1024.4.1 Mock测试 1024.4.2 消费者驱动的契约测试Pact 1064.4.3 Spring家族契约测试Spring Cloud Contract 1224.4.4 服务提供者的契约测试Moscow 129第5章 API网关 1335.1 API网关的意义 1345.2 API网关的职责 1375.2.1 请求路由 1375.2.2 请求过滤 1385.2.3 服务治理 1395.3 API网关的缺点 1415.4 使用API网关认证身份 1415.4.1 分清认证与授权 1415.4.2 API网关是否需要管理授权 1425.4.3 传统的Cookie和Session认证 1435.4.4 基于JSON的令牌JWT 1485.5 API网关技术实战 1515.5.1 Zuul 网关 1515.5.2 Spring Cloud Gateway 1595.5.3 Spring Security 1665.5.4 Java-JWT 178第6章 BFF用于前端的后端 1836.1 回顾前后端分离发展史 1846.1.1 日渐臃肿的前端 1846.1.2 前端技术栈大爆发 1856.1.3 前后端分离的必然性 1856.1.4 分离后的挑战 1866.2 BFF诞生 1876.2.1 BFF的概念 1876.2.2 BFF的适用场景 1886.2.3 BFF模式 1896.3 基于RESTful的BFF 1906.4 基于GraphQL的BFF 1936.4.1 GraphQL的概念 1936.4.2 GraphQL在客户端的基本用法 1976.4.3 GraphQL 与 Java集成 2046.4.4 GraphQL与WebFlux集成 215第7章 领域驱动设计 2207.1 如何划分微服务 2217.1.1 微服务的划分方式 2217.1.2 DDD与服务划分 2227.2 领域驱动设计概述 2237.2.1 DDD的概念 2237.2.2 DDD解决了什么问题 2247.2.3 DDD适合小项目吗 2267.2.4 为了统一语言 2277.3 领域和子域 2297.4 领域事件 2307.4.1 领域事件的定义 2307.4.2 事件风暴 2307.4.3 用户旅程与事件风暴 2327.5 聚合和聚合根 2337.6 限界上下文 2347.7 六边形架构 2367.8 DDD的挑战 237第8章 Docker和K8s 2398.1 虚拟化技术 2408.2 Docker容器化 2418.2.1 Docker的概念 2418.2.2 容器的概念 2428.3 学习使用Docker 2448.3.1 Docker的安装方法 2448.3.2 构建Docker镜像 2468.3.3 运行Docker容器 2508.3.4 了解Docker的网络 2528.3.5 日志监控的利器ELK 2538.4 容器编排 2588.4.1 容器为什么需要编排 2588.4.2 Kubernetes的概念 2598.4.3 K8s的设计理念 2608.4.4 K8s的命名空间 2648.4.5 K8s与Docker 2658.4.6 K8s与Docker Swarm 2668.5 云商的支持 267第9章 持续集成、部署与交付 2709.1 持续集成(CI) 2719.1.1 传统的系统集成 2719.1.2 持续集成的概念 2739.1.3 微服务的CI 2759.2 持续交付(CD) 2759.2.1 CD的概念 2769.2.2 DevOps与持续交付 2779.2.3 软件质量门 2779.3 持续部署(CD) 2799.3.1 生产环境部署的难点 2809.3.2 蓝绿部署 2819.3.3 滚动部署 2829.3.4 灰度发布 2839.4 CI/CD工具 2849.4.1 Jenkins 2849.4.2 GoCD概述 2919.4.3 DevOps概述 300第10章 任务管理 30210.1 任务管理概述 30310.1.1 如何解决任务互斥 30310.1.2 任务调度平台 30410.2 实战演练 30510.2.1 Quartz 30610.2.2 XXL-JOB 310第11章 事务管理 31811.1 事务概述 31911.2 CAP理论 32011.3 BASE理论 32111.4 解决方案 32211.4.1 基于可靠消息的事务管理 32211.4.2 两段提交事务 32511.4.3 TCC模式事务管理 32611.5 对账是后的屏障 328第12章 传统架构的微服务转型之路 32912.1 传统架构转型的难点 33012.2 识别领域与界限 33212.3 分块重构法 33412.4 代理隔离法 33612.5 转型不是一蹴而就的 338 上一篇: 征服C指针 第2版 [日]前桥和弥 2021年版 下一篇: 新媒体实用工具全攻略:图文制作+视频剪辑+音频处理+辅助运营 王斐 2021年版