• 微服务设计
21年品牌 40万+商家 超1.5亿件商品

微服务设计

正版保障 假一赔十 可开发票

95.75 6.0折 159.8 全新

库存65件

广东广州
认证卖家担保交易快速发货售后保障

作者(英)萨姆·纽曼(Sam Newman)著

出版社人民邮电出版社

ISBN9787115638762

出版时间2024-04

装帧平装

开本16开

定价159.8元

货号15772112

上书时间2024-09-24

灵感书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
[英]萨姆·纽曼(Sam Newman) 微服务先驱 · Thoughtworks前系统架构师 · 独立咨询师 深耕行业20多年,聚焦微服务、云和持续交付,致力于帮助企业更快速、可靠地交付软件,合作客户遍布全球。热销技术书作者,著有《微服务设计》《重构到微服务》。

目录
审读致谢 专家推荐 推荐序一 | 肖然 推荐序二 | 沈剑 译者序 前言 第一部分  基础 第1章  追根问底微服务 3 1.1  微服务概述 3 1.2  微服务的关键概念 5 1.2.1  可独立部署 5 1.2.2  围绕业务领域建模 6 1.2.3  状态自主 7 1.2.4  服务大小 7 1.2.5  灵活性 8 1.2.6  架构和组织的一致性 8 1.3  单体 11 1.3.1  单进程单体 12 1.3.2  模块化单体 12 1.3.3  分布式单体 13 1.3.4  单体和交付争用 14 1.3.5  单体的优势 14 1.4  技术能力 14 1.4.1  日志聚合和分布式追踪 15 1.4.2  容器和Kubernetes 16 1.4.3  流技术 16 1.4.4  公有云和无服务器技术 17 1.5  微服务的优势 17 1.5.1  技术的异构性 17 1.5.2  健壮性 18 1.5.3  扩展性 19 1.5.4  部署的便捷性 20 1.5.5  组织协调 20 1.5.6  可组合性 20 1.6  微服务的痛点 20 1.6.1  开发者体验 21 1.6.2  技术过载 21 1.6.3  成本 21 1.6.4  生成报表 22 1.6.5  监控和故障排除 23 1.6.6  安全 23 1.6.7  测试 23 1.6.8  延迟 23 1.6.9  数据一致性 24 1.7  我应该采用微服务吗 24 1.7.1  不适用情况 24 1.7.2  适用情况 25 1.8  小结 26 第2章  微服务建模 27 2.1  MusicCorp简介 27 2.2  合理划分微服务边界 28 2.2.1  信息隐藏 28 2.2.2  内聚 29 2.2.3  耦合 29 2.2.4  内聚和耦合的相互作用 30 2.3  耦合的类型 30 2.3.1  领域耦合 31 2.3.2  传递耦合 33 2.3.3  公共耦合 36 2.3.4  内容耦合 39 2.4  恰到好处的领域驱动设计 40 2.4.1  通用语言 40 2.4.2  聚合 41 2.4.3  限界上下文 43 2.4.4  将聚合及限界上下文映射到微服务 45 2.4.5  事件风暴 46 2.5  DDD在微服务环境中的应用案例 47 2.6  领域边界的替代方法 48 2.6.1  易变性 48 2.6.2  数据 49 2.6.3  技术 50 2.6.4  组织 51 2.7  混合模型和例外 53 2.8  小结 53 第3章  拆分大单体 54 3.1  明确目标 54 3.2  增量迁移 55 3.3  单体并不是威胁 55 3.4  先拆分什么 56 3.5  按层拆分 58 3.5.1  代码优先 58 3.5.2  数据优先 59 3.6  有用的拆分模式 60 3.6.1  绞杀者模式 60 3.6.2  并行运行模式 61 3.6.3  功能开关模式 61 3.7  拆分数据库的注意事项 61 3.7.1  性能 61 3.7.2  数据完整性 63 3.7.3  事务 63 3.7.4  工具 64 3.7.5  报表数据库 64 3.8  小结 65 第4章  微服务间通信模式 66 4.1  从进程内到进程间 66 4.1.1  性能 66 4.1.2  接口变更 67 4.1.3  错误处理 67 4.2  进程内的通信技术:选择众多 69 4.3  微服务间的通信模式 69 4.4  同步阻塞模式 70 4.4.1  优点 71 4.4.2  缺点 71 4.4.3  适用情况 71 4.5  异步非阻塞模式 73 4.5.1  优点 73 4.5.2  缺点 74 4.5.3  适用情况 75 4.6  共用数据模式 75 4.6.1  实现 75 4.6.2  优点 76 4.6.3  缺点 76 4.6.4  适用情况 77 4.7  请求–响应模式 77 4.7.1  实现:同步与异步 78 4.7.2  适用情况 80 4.8  事件驱动模式 80 4.8.1  实现 82 4.8.2  事件 82 4.8.3  适用情况 85 4.9  谨慎行事 85 4.10  小结 87 第二部分  实现 第5章  实现微服务间通信 91 5.1  寻找理想的技术 91 5.1.1  轻松实现向后兼容 91 5.1.2  明确你的接口 91 5.1.3  保持API的技术中立 92 5.1.4  简化提供给消费者的服务 92 5.1.5  隐藏内部实现细节 92 5.2  技术选型 92 5.2.1  远程过程调用 93 5.2.2  REST 96 5.2.3  GraphQL 99 5.2.4  消息代理 101 5.3  序列化格式 104 5.3.1  文本格式 104 5.3.2  二进制格式 105 5.4  模式 105 5.4.1  结构性破坏和语义性破坏 106 5.4.2  是否应该使用模式 106 5.5  处理微服务间的变更 107 5.6  避免破坏性变更 107 5.6.1  扩展式更改 108 5.6.2  兼容的消费者 108 5.6.3  合适的技术 109 5.6.4  显式接口 109 5.6.5  尽早发现破坏性变更 110 5.7  管理破坏性变更 111 5.7.1  同步部署 111 5.7.2  共存不兼容的微服务版本 111 5.7.3  模拟旧接口 112 5.7.4  推荐的方法 113 5.7.5  社会契约 114 5.7.6  追踪使用情况 114 5.7.7  特别措施 114 5.8  DRY和微服务架构中的代码复用风险 115 5.9  服务发现 117 5.9.1  域名系统 117 5.9.2  动态服务注册 118 5.9.3  不要忘记人类 120 5.10  服务网格和API网关 120 5.10.1  API 网关 121 5.10.2  服务网格 123 5.10.3  其他协议 126 5.11  文档服务 126 5.11.1  显式模式 126 5.11.2  自描述系统 127 5.12  小结 129 第6章  工作流 131 6.1  数据库事务 131 6.1.1  ACID事务 131 6.1.2  还是ACID事务,但缺乏原子性支持吗 132 6.2  分布式事务:两阶段提交 134 6.3  分布式事务:只需说“不” 136 6.4  Saga 137 6.4.1  Saga故障模式 138 6.4.2  实现Saga 142 6.4.3  Saga与分布式事务 146 6.5  小结 147 第7章  构建 148 7.1  持续集成简介 148 7.1.1  你真的在实践持续集成吗 149 7.1.2  分支模型 149 7.2  构建流水线和持续交付 151 7.2.1  工具 152 7.2.2  权衡与环境 153 7.2.3  构建制品 153 7.3  将源代码和构建映射到微服务 155 7.3.1  一个巨大的代码库,一次巨大的构建 155 7.3.2  多代码库 156 7.3.3  单一代码库 159 7.3.4  我会使用哪种方式 163 7.4  小结 164 第8章  部署 165 8.1  从逻辑到物理 165 8.1.1  多实例 166 8.1.2  数据库 167 8.1.3  环境 170 8.2  微服务部署原则 172 8.2.1  隔离执行 172 8.2.2  专注于自动化 175 8.2.3  基础设施即代码 176 8.2.4  零停机部署 176 8.2.5  期望状态管理 177 8.3  部署选项 179 8.3.1  物理机 180 8.3.2  虚拟机 180 8.3.3  容器 182 8.3.4  应用容器 186 8.3.5  平台即服务(PaaS) 187 8.3.6  函数即服务(FaaS) 188 8.4  哪种部署方式适合你 193 8.5  Kubernetes与容器编排 195 8.5.1  容器编排案例 195 8.5.2  Kubernetes概念的简化视图 196 8.5.3  多租户和联邦 198 8.5.4  云原生计算基金会 200 8.5.5  平台和可移植性 200 8.5.6  Helm、Operator与CRD 201 8.5.7  Knative 201 8.5.8  未来 202 8.5.9  你应该使用它吗 202 8.6  渐进式交付 203 8.6.1  分离部署与发布 203 8.6.2  渐进式交付 204 8.6.3  功能开关 204 8.6.4  金丝雀发布 204 8.6.5  并行运行 205 8.7  小结 206 第9章  测试 207 9.1  测试类型 207 9.2  测试范围 209 9.2.1  单元测试 210 9.2.2  服务测试 211 9.2.3  端到端测试 212 9.2.4  权衡 212 9.3  实现服务测试 213 9.3.1  mock还是打桩 213 9.3.2  更智能的打桩服务 214 9.4  微妙的端到端测试 215 9.4.1  脆弱的测试 216 9.4.2  谁来写测试 217 9.4.3  测试应该运行的时间 218 9.4.4  大量的堆积 219 9.4.5  元版本 219 9.4.6  缺乏独立可测试性 219 9.5  应该放弃端到端测试吗 220 9.5.1  契约测试和消费者驱动的契约 220 9.5.2  一点补充 222 9.6  开发者体验 223 9.7  从预发布环境测试到生产环境测试 223 9.7.1  生产环境测试的类型 224 9.7.2  确保生产环境测试的安全性 224 9.7.3  平均故障间隔时间和平均修复时间的权衡 225 9.8  跨功能测试 225 9.8.1  性能测试 226 9.8.2  健壮性测试 227 9.9  小结 227 第10章  从监控到可观测性 229 10.1  混乱、恐慌和困惑 229 10.2  单个微服务,单个服务器 230 10.3  单个微服务,多个服务器 231 10.4  多个微服务,多个服务器 232 10.5  可观测性与监控 233 10.6  构建可观测性的组件 234 10.6.1  日志聚合 235 10.6.2  指标聚合 241 10.6.3  分布式追踪 243 10.6.4  我们做得如何 245 10.6.5  警报 247 10.6.6  语义监控 250 10.6.7  生产环境测试 251 10.7  标准化 253 10.8  选择工具 253 10.8.1  大众化 253 10.8.2  易于集成 253 10.8.3  提供上下文 254 10.8.4  实时性 254 10.8.5  恰如其分 254 10.9  机器专家 255 10.10  起点 255 10.11  小结 256 第11章  安全 258 11.1  核心原则 259 11.1.1  最小权限原则 259 11.1.2  深度防御 259 11.1.3  自动化 261 11.1.4  在交付过程中构建安全性 261 11.2  五大网络安全功能 262 11.2.1  身份识别 262 11.2.2  保护 263 11.2.3  检测 263 11.2.4  响应 263 11.2.5  恢复 264 11.3  应用安全的基础 264 11.3.1  凭证 264 11.3.2  打补丁 269 11.3.3  备份 271 11.3.4  重建 271 11.4  隐式信任与零信任 272 11.4.1  隐式信任 272 11.4.2  零信任 273 11.4.3  这是个范围 273 11.5  数据保护 275 11.5.1  传输中的数据 275 11.5.2  静态数据 277 11.6  身份验证和鉴权 279 11.6.1  服务间验证 279 11.6.2  用户的身份验证 279 11.6.3  常见的单点登录实现 280 11.6.4  单点登录网关 281 11.6.5  细粒度鉴权 282 11.6.6  混淆代理人问题 282 11.6.7  中心化上游鉴权 284 11.6.8  去中心化鉴权 284 11.6.9  JWT 284 11.7  小结 287 第12章  弹性 288 12.1  弹性介绍 288 12.1.1  健壮性 289 12.1.2  可恢复性 290 12.1.3  优雅的可扩展性 290 12.1.4  持续适应性 290 12.1.5  代入微服务架构 291 12.2  故障无处不在 291 12.3  多少才算多 292 12.4  功能降级 293 12.5  稳定性模式 293 12.5.1  超时 295 12.5.2  重试 297 12.5.3  舱壁 297 12.5.4  断路器 298 12.5.5  隔离 300 12.5.6  冗余 301 12.5.7  中间件 301 12.5.8  幂等 302 12.6  分散风险 303 12.7  CAP定理 304 12.7.1  牺牲一致性 305 12.7.2  牺牲可用性 305 12.7.3  牺牲分区容错性 306 12.7.4  AP还是CP 306 12.7.5  全部和全不并不是二选一 306 12.7.6  现实世界 307 12.8  混沌工程 307 12.8.1  演练日 308 12.8.2  生产实验 308 12.8.3  超越健壮性 309 12.9  问责 309 12.10  小结 310 第13章  扩展性 312 13.1  扩展性的4个维度 312 13.1.1  纵向扩容 313 13.1.2  横向复制 314 13.1.3  数据分区 317 13.1.4  功能拆分 320 13.2  组合模型 322 13.3  从小处着手 323 13.4  缓存 324 13.4.1  用于提高性能 324 13.4.2  用于提高扩展性 325 13.4.3  用于提高健壮性 325 13.4.4  将缓存设置在哪里 325 13.4.5  让缓存失效 329 13.4.6  缓存的黄金法则 333 13.4.7  新鲜度与优化程度 333 13.4.8  缓存中毒:一个需要警惕的故事 334 13.5  自动扩展 334 13.6  重新出发 335 13.7  小结 336 第三部分  人和组织 第14章 &

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP