本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
内容简介
内容简介这是一本从架构视角讲解如何构建大型分布式系统的著作,是超级畅销书《深入理解Java虚拟机》的作者周志明多年架构和研发经验的总结,得到了多位行业*深架构专家的联袂推荐。全书共16章,分为演进中的架构、架构师的视角、分布式的基石、不可变基础设施和技术方法论五部分。*1部分 演进中的架构(*1章)着重介绍了软件开发历史中多种主流架构风格出现的契机、解决的问题以及带来的新缺陷。*二部分 架构师的视角(*2~5章)总结了一名架构师应该在架构设计时思考哪些问题,有哪些主流的解决方案和行业标准做法,各种方案有什么优缺点,不同的解决方法会带来什么不同的影响,等等。第三部分 分布式的基石(第6~10章)重点讨论了“不同架构风格是应该在技术规范上统一,还是由应用系统自行解决”这个问题,给出了解决思路、方法和常见工具。第四部分 不可变基础设施(*11~15章)重点讲解了基础设施不变性的目的、原理与实现途径,包括虚拟化容器、容器间网络、持久化存储、资源与调度、服务网格等内容。第五部分 技术方法论(*16章)面向技术决策者集中讨论了与分布式、微服务、架构等相关的理论话题,将解决问题的能力归纳、总结、升华为方法论。全书以实践为导向,一个案例贯穿全书,同时给出了基于Spring Boot、Spring Cloud、Kubernetes、Istio、AWS Lambda 五种架构风格的样例工程。
目录
赞誉自序前言*一部分 演进中的架构*1章 服务架构演进史21.1 原始分布式时代21.2 单体系统时代51.3 SOA时代81.4 微服务时代121.5 后微服务时代161.6 无服务时代19*二部分 架构师的视角*2章 访问远程服务242.1 远程服务调用242.1.1 进程间通信242.1.2 通信的成本262.1.3 三个基本问题282.1.4 统一的RPC302.1.5 分裂的RPC322.2 REST设计风格342.2.1 理解REST352.2.2 RESTful的系统372.2.3 RMM412.2.4 不足与争议45第3章 事务处理483.1 本地事务493.1.1 实现原子性和持久性503.1.2 实现隔离性543.2 全局事务573.3 共享事务623.4 分布式事务643.4.1 CAP与ACID643.4.2 可靠事件队列673.4.3 TCC事务693.4.4 SAGA事务72第4章 透明多级分流系统754.1 客户端缓存764.1.1 强制缓存774.1.2 协商缓存794.2 域名解析814.3 传输链路834.3.1 连接数优化844.3.2 传输压缩884.3.3 快速UDP网络连接904.4 内容分发网络924.4.1 路由解析924.4.2 内容分发954.4.3 CDN应用964.5 负载均衡974.5.1 数据链路层负载均衡994.5.2 网络层负载均衡1014.5.3 应用层负载均衡1044.5.4 均衡策略与实现1064.6 服务端缓存1074.6.1 缓存属性1084.6.2 缓存风险117第5章 架构安全性1205.1 认证1215.1.1 认证的标准1215.1.2 认证的实现1285.2 授权1295.2.1 RBAC1305.2.2 OAuth 21335.3 凭证1405.3.1 Cookie-Session1405.3.2 JWT1425.4 保密1475.4.1 保密的强度1475.4.2 客户端加密1485.4.3 密码存储和验证1495.5 传输1515.5.1 摘要、加密与签名1515.5.2 数字证书1545.5.3 传输安全层1575.6 验证160第三部分 分布式的基石第6章 分布式共识1666.1 Paxos1686.1.1 Paxos的诞生1696.1.2 算法流程1696.1.3 工作实例1726.2 Multi Paxos1746.3 Gossip协议178第7章 从类库到服务1807.1 服务发现1807.1.1 服务发现的意义1817.1.2 可用与可靠1827.1.3 注册中心实现1857.2 网关路由1867.2.1 网关的职责1867.2.2 网络I/O模型1887.2.3 BFF网关1907.3 客户端负载均衡1917.3.1 客户端负载均衡器1937.3.2 代理负载均衡器1947.3.3 地域与区域196第8章 流量治理1988.1 服务容错1988.1.1 容错策略1998.1.2 容错设计模式2018.2 流量控制2098.2.1 流量统计指标2108.2.2 限流设计模式2118.2.3 分布式限流215第9章 可靠通信2179.1 零信任网络2179.1.1 零信任安全模型的特征2189.1.2 Google的实践探索2209.2 服务安全2229.2.1 建立信任2229.2.2 认证2239.2.3 授权227*10章 可观测性23010.1 事件日志23310.1.1 输出23310.1.2 收集与缓冲23510.1.3 加工与聚合23610.1.4 存储与查询23710.2 链路追踪23910.2.1 追踪与跨度23910.2.2 数据收集24010.2.3 追踪规范化24310.3 聚合度量24410.3.1 指标收集24510.3.2 存储查询24810.3.3 监控预警250第四部分 不可变基础设施*11章 虚拟化容器25411.1 容器的崛起25611.1.1 隔离文件:chroot25611.1.2 隔离访问:名称空间25711.1.3 隔离资源:cgroups25811.1.4 封装系统:LXC25911.1.5 封装应用:Docker26011.1.6 封装集群:Kubernetes26311.2 以容器构建系统26611.2.1 隔离与协作26611.2.2 韧性与弹性27111.3 以应用为中心的封装27511.3.1 Kustomize27611.3.2 Helm与Chart27711.3.3 Operator与CRD27911.3.4 开放应用模型284*12章 容器间网络28812.1 Linux网络虚拟化28812.1.1 网络通信模型28912.1.2 干预网络通信29112.1.3 虚拟化网络设备29412.1.4 容器间通信30412.2 容器网络与生态30612.2.1 CNM与CNI30612.2.2 CNM到CNI30812.2.3 网络插件生态310*13章 持久化存储31413.1 Kubernetes存储设计31413.1.1 Mount和Volume31613.1.2 静态存储分配31813.1.3 动态存储分配32213.2 容器存储与生态32513.2.1 Kubernetes存储架构32513.2.2 FlexVolume与CSI32713.2.3 从In-Tree到Out-of-Tree32913.2.4 容器插件生态331*14章 资源与调度33614.1 资源模型33614.2 服务质量与优先级33714.3 驱逐机制34014.4 默认调度器342*15章 服务网格34615.1 透明通信的涅槃34715.1.1 通信成本34715.1.2 数据平面35215.1.3 控制平面35815.2 服务网格与生态36015.2.1 服务网格接口36115.2.2 通用数据平面API36315.2.3 服务网格生态364第五部分 技术方法论*16章 向微服务迈进36816.1 目的:微服务的驱动力36916.2 前提:微服务需要的条件37116.3 边界:微服务的粒度37516.4 治理:理解系统复杂性37716.4.1 静态的治理37816.4.2 发展的治理380附录A 技术演示工程实践383附录B 部署Kubernetes集群402