失效链接处理 |
微服务设计模式和最佳实践 PDF 下载
本站整理下载:
版权归出版社和原作者所有,链接已删除,请购买正版
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.dangdang.com/27854365.html
相关截图:
资料简介: 本书详细阐述了与微服务相关的基本解决方案,主要包括微服务概念、微服务工具、内部模式、微服务生态环境、共享数据微服务设计模式、聚合器微服务设计模式、代理微服务设计模式、链式微服务设计模式、分支微服务设计模式、异步消息微服务、微服务间的协同工作、微服务测试以及安全监测和部署方案等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册 资料目录: 第1章 微服务概念 1 1.1 理解应用程序 2 1.1.1 领域驱动设计 2 1.1.2 单一职责原则 4 1.1.3 显式发布的接口 5 1.2 独立部署、更新、扩展以及替换 7 1.2.1 独立部署 7 1.2.2 更新 7 1.2.3 可扩展性 8 1.3 轻量级通信 12 1.3.1 同步 13 1.3.2 异步 13 1.4 异质/多语言 14 1.5 通信的文档化 14 1.6 Web应用程序端点 15 1.7 移动应用程序端点 15 1.8 缓存客户端 16 1.9 调节客户端 17 1.10 确定贫血域 17 1.11 确定fat域 18 1.12 针对业务确定微服务域 18 1.13 从域到实体 19 1.14 本章小结 20 第2章 微服务工具 21 2.1 编程语言 21 2.1.1 熟练程度 22 2.1.2 性能 22 2.1.3 实践开发 23 2.1.4 生态圈 23 2.1.5 扩展性的开销 24 2.1.6 选取编程语言 24 2.2 微服务框架 27 2.2.1 Python语言 27 2.2.2 Go语言 29 2.3 二进制通信—服务间的直接通信 31 2.3.1 理解通信方式 31 2.3.2 直接通信间的警示信息 35 2.4 消息代理—服务间的异步通信 37 2.4.1 ActiveMQ 38 2.4.2 RabbitMQ 39 2.4.3 Kafka 40 2.5 缓存工具 40 2.5.1 Memcached 42 2.5.2 Redis 42 2.6 故障警示工具 44 2.6.1 性能 44 2.6.2 构建 45 2.6.3 组件 46 2.6.4 实现鸿沟 47 2.7 数据库 47 2.8 本地性能度量 48 2.8.1 Apache Benchmark 49 2.8.2 WRK 50 2.8.3 Locust 51 2.9 本章小结 53 第3章 内部模式 55 3.1 开发结构 55 3.1.1 数据库 55 3.1.2 编程语言和工具 56 3.1.3 项目结构 56 3.2 缓存策略 71 3.2.1 缓存机制的应用 72 3.2.2 缓存优先 78 3.2.3 队列任务 79 3.2.4 异步机制和worker 81 3.3 CQRS—查询策略 87 3.3.1 CQRS的概念 87 3.3.2 理解CQRS 88 3.3.3 CQRS的优点和缺陷 90 3.4 事件源—数据完整性 91 3.5 本章小结 92 第4章 微服务生态环境 93 4.1 容器中的分离机制 93 4.1.1 分层服务架构 95 4.1.2 分离UsersService 96 4.2 存储分布 103 4.2.1 折旧数据 103 4.2.2 区域化数据 103 4.3 隔离—使用生态系统防止故障的出现 104 4.3.1 冗余设计 104 4.3.2 临界分区 109 4.3.3 隔离设计 110 4.3.4 快速故障 111 4.4 断路器 112 4.5 本章小结 113 第5章 共享数据微服务设计模式 115 5.1 理解模式 115 5.2 将单体应用程序划分为微服务 116 5.2.1 定义优先级 117 5.2.2 设置期限 117 5.2.3 定义应用程序域 117 5.2.4 试验操作 117 5.2.5 制定标准 118 5.2.6 构建原型 118 5.2.7 发送产品 118 5.2.8 开发新的微服务 118 5.3 数据编排 130 5.4 响应整合 132 5.5 微服务通信 132 5.6 存储共享反模式 133 5.7 最佳实践 133 5.8 测试机制 133 5.9 共享数据模式的利弊 135 5.10 本章小结 136 第6章 聚合器微服务设计模式 137 6.1 理解聚合器设计模式 137 6.2 使用CQRS和事件源 139 6.2.1 分离数据库 139 6.2.2 重构微服务 140 6.3 微服务通信 153 6.3.1 创建编排器 154 6.3.2 使用消息代理 159 6.4 模式扩展 163 6.5 瓶颈反模式 164 6.6 最佳实践 166 6.7 测试 167 6.7.1 功能测试 167 6.7.2 集成测试 168 6.8 聚合器设计模式的优缺点 170 6.8.1 聚合器设计模式的优点 170 6.8.2 聚合器设计模式的缺点 170 6.9 本章小结 170 第7章 代理微服务设计模式 171 7.1 代理方案 171 7.1.1 哑代理 172 7.1.2 智能代理 172 7.1.3 理解当前代理 173 7.2 编排器的代理策略 175 7.3 微服务通信 176 7.4 模式扩展性 176 7.5 最佳实践 177 7.5.1 纯粹的模式 177 7.5.2 瓶颈问题 178 7.5.3 代理制的缓存机制 178 7.5.4 简单的响应 178 7.6 代理设计模式的优缺点 179 7.7 本章小结 179 第8章 链式微服务设计模式 181 8.1 理解模式 181 8.2 数据编排和响应整合 184 8.3 微服务通信 185 8.4 模式扩展性 185 8.5 “大泥球”反模式 186 8.6 最佳实践方案 188 8.6.1 纯微服务 188 8.6.2 请求一致性数据 188 8.6.3 深入理解链式设计模式 189 8.6.4 关注通信层 189 8.7 链式设计模式的优缺点 189 8.8 本章小结 190 第9章 分支微服务设计模式 191 9.1 理解模式 191 9.2 数据编排和响应整合 194 9.3 微服务通信 195 9.4 模式扩展 197 9.5 最佳实践方案 198 9.5.1 域定义 198 9.5.2 遵守规则 198 9.5.3 关注物理组件 198 9.5.4 简化行为 199 9.6 分支设计模式的优缺点 199 9.7 本章小结 199 第10章 异步消息微服务 201 10.1 理解当前模式 201 10.2 域定义—RecommendationService 203 10.3 域定义—RecommendationService 204 10.4 微服务编码 204 10.5 微服务通信 211 10.5.1 使用消息代理和队列 211 10.5.2 准备pub/sub结构 212 10.6 模式的可扩展性 214 10.7 进程序列反模式 214 10.8 最佳实践方案 215 10.8.1 应用程序定义 215 10.8.2 不要尝试创建响应 216 10.8.3 保持简单性 216 10.9 异步消息传递设计模式的优缺点 216 10.10 本章小结 217 第11章 微服务间的协同工作 219 11.1 理解当前应用程序状态 219 11.1.1 公共饰面层 220 11.1.2 内部层 222 11.1.3 理解通用工具 223 11.2 通信层和服务间的委托 224 11.2.1 理解服务间的数据合约 225 11.2.2 使用二进制通信 228 11.3 模式分布 235 11.4 故障策略 236 11.5 API集成 237 11.6 本章小结 239 第12章 微服务测试 241 12.1 单元测试 241 12.2 针对集成测试配置容器 249 12.3 集成测试 251 12.4 端到端测试 253 12.5 发布管线 259 12.6 签名测试 259 12.7 Monkey测试 260 12.8 Chaos Monkey 260 12.9 本章小结 262 第13章 安全监测和部署方案 263 13.1 监测微服务 263 13.1.1 监测单一服务 264 13.1.2 监测多项服务 266 13.1.3 查看日志 267 13.1.4 应用程序中的错误 268 13.1.5 度量方法 271 13.2 安全问题 272 13.2.1 理解JWT 272 13.2.2 单点登录 275 13.2.3 数据安全 276 13.2.4 预防恶意攻击—识别攻击行为 277 13.2.5 拦截器 277 13.2.6 容器 278 13.2.7 API网关 279 13.3 部署 279 13.3.1 持续集成和持续交付/持续部署 280 13.3.2 蓝/绿部署模式和Canary发布 281 13.3.3 每台主机包含多个服务实例 282 13.3.4 每台主机的服务实例 283 13.4 本章小结 285 |