| 作者 |
| [美]路易斯·安德烈·巴罗索 (Luiz André Barroso) 乌尔斯·霍尔兹勒(Urs H&ouml lzle) 帕塔萨拉蒂·兰加纳坦(Parthasarathy Ranganathan)韩陆 |
| 丛书名 |
| 数据科学与工程技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9782002122194 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------数据中心一体化最佳实践:设计仓储级计算机(原书第3版)--------------------------- 本书将介绍仓储级计算机(WSC)。这种计算平台是云计算的核心,支撑着我们每天都在使用的各种强大的互联网服务。本书讨论了此类新型系统如何将数据中心本身当作一台超大规模仓储级的计算机来使用,同时又能使软硬件充分协同并提供高性能的互联网服务。书中还详细讲述了WSC的架构设计,其中不仅涵盖影响其设计、运行和成本结构的主要因素,还包括相应的基础软件的各种特性。每一章都介绍了多个真实世界的案例,其中包括详尽的分析在线服务的基础设施信息。本书主要面向当今WSC系统的架构师和程序开发人员,希望能为有志于在此重要领域发展的人才打下一个坚实的基础,同时相关的内容也适用于那些仅想了解互联网基础设施信息的人群。 ---------------------------Java RESTful Web Service实战 (第2版)--------------------------- 本书系统、深度讲解了如何基于Java标准规范实现REST风格的Web服务,由拥有10余年开发经验的阿里云大数据架构师撰写,第1版上市后广获赞誉,成为该领域的畅销书。第2版对全书进行了优化和重构,不仅根据最新的技术版本对原有过时内容进行了更新,而且还根据整个技术领域的发展增添了新的内容。除此之外,还对第1版中存在的不足进行了优化,使得内容更加与时具进、更加有价值。不仅深刻解读了最新的JAX-RS标准和其API设计,以及Jersey的使用要点和实现原理,还系统讲解了REST的基本理论,更重要的是从实践角度深度讲解了如何基于Jersey实现完整的、安全的、高性能的REST式的Web服务,书中包含大量示例代码,实战性强。全书共10章,包括JAX-RS2入门、REST API设计、REST请求处理、REST服务与异步、REST客户端、REST测试、微服务、容器化、JAX-RS调优、REST安全等内容。书中从基础概念开始,结合大量示例和实现代码,将REST理论与Java实现相结合,循序渐进地阐述Java REST式服务,为读者提供更精炼、更准确、更全面的参考。 |
| 目录 |
---------------------------数据中心一体化最佳实践:设计仓储级计算机(原书第3版)--------------------------- 译者序 致谢 作者简介 译者简介 第1章 绪论 1 1.1 仓储级计算机 2 1.2 规模化下的成本效益 3 1.3 不仅是服务器的简单堆砌 4 1.4 单个数据中心与多个数据中心 4 1.5 为什么WSC对你至关重要 5 1.6 WSC架构概述 6 1.6.1 服务器 6 1.6.2 存储 7 1.6.3 网络结构 8 1.6.4 建筑与基础设施 9 1.6.5 电力使用 11 1.6.6 故障与维修处理 12 1.7 本书概述 12 第2章 工作负载与基础软件 15 2.1 WSC系统栈 15 2.2 平台层软件 16 2.3 集群层基础软件 17 2.3.1 资源管理 17 2.3.2 集群基础软件 18 2.3.3 应用框架 18 2.4 应用层软件 19 2.4.1 工作负载多样性 19 2.4.2 网页搜索 20 2.4.3 视频服务 22 2.4.4 学术文章相似度搜索 23 2.4.5 机器学习 24 2.5 监控基础设施 27 2.5.1 服务层仪表盘 27 2.5.2 性能诊断工具 27 2.5.3 平台层健康监控 28 2.6 WSC软件的权衡 29 2.6.1 数据中心和台式机 29 2.6.2 性能与可用性工具箱 30 2.6.3 购买还是自建 32 2.6.4 长尾容忍 33 2.6.5 工程师应该知道的延迟数据 33 2.7 云计算 35 2.7.1 面向公有云服务的WSC和对内服务的WSC 36 2.7.2 云原生软件 36 2.8 仓储级信息安全 37 第3章 WSC硬件组件 39 3.1 服务器硬件 39 3.1.1 服务器和机架概述 40 3.1.2 大型SMP通信效率的影响 43 3.1.3 高性能服务器和低性能服务器 45 3.2 计算加速器 48 3.2.1 图形处理器 49 3.2.2 张量处理器 50 3.3 网络 52 3.3.1 集群网络 52 3.3.2 主机网络 56 3.4 存储 57 3.4.1 硬盘托盘与无盘服务器 57 3.4.2 WSC非结构化存储 58 3.4.3 WSC结构化存储 59 3.4.4 存储与网络技术相互作用 60 3.5 平衡的设计 61 3.5.1 系统平衡:存储层次结构 62 3.5.2 量化延迟、带宽及容量 62 第4章 数据中心基础:建筑、电力与冷却 65 4.1 数据中心概述 65 4.1.1 等级分类与规格 65 4.1.2 建筑基础知识 66 4.2 数据中心电力系统 68 4.2.1 不间断电源系统 68 4.2.2 配电单元 69 4.2.3 交流与直流配电架构对比 70 4.3 应用实例:冗余径向配电 71 4.4 应用实例:中压电源层 72 4.5 数据中心冷却系统 74 4.5.1 机房空调系统 76 4.5.2 冷水机组 77 4.5.3 冷却塔 77 4.5.4 自然冷却 79 4.5.5 对气流的考量 79 4.5.6 机架内冷却、行级冷却和液体冷却 81 4.5.7 基于集装箱的数据中心 82 4.6 应用实例:谷歌数据中心顶部冷却系统 84 4.7 本章小结 84 第5章 能耗与能效 85 5.1 数据中心能效 85 5.1.1 PUE指标 86 5.1.2 PUE指标的问题 88 5.1.3 数据中心能效损失来源 89 5.1.4 提升数据中心能效 90 5.1.5 基础设施之外的因素 91 5.2 计算能效 92 5.2.1 能效的测量 92 5.2.2 服务器能效 92 5.2.3 WSC使用画像 93 5.3 能耗成比例计算 95 5.3.1 能耗成比例程度低的原因 96 5.3.2 提升能耗成比例的能力 97 5.3.3 系统其他部分的能耗成比例 98 5.3.4 低功耗模式的相对有效性 99 5.3.5 软件在能耗成比例中的作用 100 5.4 通过专用定制提高能效 103 5.5 数据中心供电 105 5.5.1 部署适量的设备 105 5.5.2 数据中心超额用电 105 5.6 服务器能量使用趋势 107 5.7 本章小结 109 第6章 成本建模 111 6.1 资本成本 111 6.2 运营成本 113 6.3 案例分析 114 6.4 实际数据中心成本 116 6.5 建模部分使用的数据中心 117 6.6 公有云成本 118 第7章 故障处理与维修 119 7.1 软件容错 120 7.2 故障分类 121 7.2.1 故障严重性分级 122 7.2.2 导致服务级故障的原因 123 7.3 机器级故障 124 7.3.1 导致机器级故障的原因 127 7.3.2 故障预测 128 7.4 维修 129 7.5 容错不是隐藏错误 130 7.6 集群系统设计的故障统计 131 第8章 结束语 135 8.1 硬件 136 8.2 软件 137 8.3 经济性与能效 138 8.4 打造响应快速的大规模系统 139 8.4.1 不断演进的工作负载 139 8.4.2 残酷的阿姆达尔定律 139 8.4.3 为微秒级系统优化 140 8.4.4 长尾 140 8.5 展望 141 8.5.1 摩尔定律的终结 141 8.5.2 加速器与全局系统设计 141 8.5.3 软件定义基础设施 142 8.5.4 计算机体系结构和WSC的新纪元 143 8.6 总结 144 参考文献 145 ---------------------------Java RESTful Web Service实战 (第2版)--------------------------- 第2版序一 第2版序二 第1版序一 第1版序二 前言 第1章 JAX-RS2入门 1 1.1 解读REST 1 1.1.1 一种架构风格 2 1.1.2 基本实现形式 2 1.2 解读REST服务 3 1.2.1 REST式的Web服务 3 1.2.2 对比RPC风格 3 1.2.3 对比MVC风格 4 1.3 解读JAX-RS标准 5 1.3.1 JAX-RS2标准 5 1.3.2 JAX-RS2的目标 5 1.3.3 非JAX-RS2的目标 6 1.3.4 解读JAX-RS元素 7 1.4 Jersey项目概要 7 1.4.1 获得Jersey 8 1.4.2 Jersey问答 8 1.4.3 Jersey项目管理 8 1.4.4 Jersey许可 9 1.4.5 Jersey的模块 10 1.4.6 GlashFish项目 10 1.5 快速实现Java REST服务 12 1.5.1 第一个REST服务 13 1.5.2 第一个Servlet容器服务 17 1.6 快速了解Java REST服务 19 1.6.1 REST工程类型 19 1.6.2 REST应用描述 24 1.7 Java领域的其他REST实现 27 1.7.1 JAX-RS的其他实现 27 1.7.2 其他的REST实现 31 1.8 REST调试工具 33 1.8.1 命令行调试工具 33 1.8.2 基于浏览器的图形化调试插件 34 1.9 本章小结 37 第2章 REST API设计 38 2.1 统一接口 38 2.1.1 GET方法 39 2.1.2 PUT方法 41 2.1.3 DELETE方法 43 2.1.4 POST方法 44 2.1.5 WebDAV扩展方法 45 2.2 资源定位 47 2.2.1 资源地址设计 48 2.2.2 @QueryParam注解 50 2.2.3 @PathParam注解 52 2.2.4 @FormParam注解 55 2.2.5 @BeanParam注解 57 2.2.6 @CookieParam注解 58 2.2.7 @Context注解 58 2.3 传输格式 59 2.3.1 基本类型 59 2.3.2 文件类型 60 2.3.3 InputStream类型 61 2.3.4 Reader类型 62 2.3.5 XML类型 62 2.3.6 JSON类型 66 2.4 连通性 82 2.4.1 过渡型链接 82 2.4.2 结构型链接 83 2.5 处理响应 84 2.5.1 返回类型 85 2.5.2 处理异常 86 2.6 内容协商 89 2.6.1 @Produces注解 89 2.6.2 @Consumes注解 91 2.7 本章小结 92 第3章 REST请求处理 93 3.1 Jersey的AOP机制 93 3.2 Providers详解 94 3.2.1 实体Providers 94 3.2.2 上下文Providers 100 3.3 REST请求流程 100 3.4 REST过滤器 102 3.4.1 ClientRequestFilter 102 3.4.2 ContainerRequestFilter 103 3.4.3 ContainerResponseFilter 104 3.4.4 ClientResponseFilter 105 3.4.5 访问日志 107 3.5 REST拦截器 109 3.6 绑定机制 111 3.6.1 名称绑定 111 3.6.2 动态绑定 113 3.7 优先级 115 3.8 本章小结 116 第4章 REST服务与异步 117 4.1 为什么使用异步机制 117 4.1.1 服务器异步机制 117 4.1.2 客户端异步机制 118 4.2 JAX-RS2的异步机制 119 4.2.1 服务端实现 119 4.2.2 客户端实现和测试 122 4.3 基于HTTP1.1的异步通信 124 4.3.1 Polling技术 124 4.3.2 Comet技术 126 4.3.3 Web Hook异步通信 127 4.3.4 SSE技术 128 4.4 基于HTML5的异步通信 129 4.4.1 SSE的原理 129 4.4.2 发布—订阅模式的实现 131 4.4.3 广播模式的实现 135 4.4.4 WebSocket技术 137 4.5 本章小节 138 第5章 REST客户端 139 5.1 客户端接口 140 5.1.1 Client接口 140 5.1.2 WebTarget接口 141 5.1.3 Invocation接口 142 5.2 连接池 142 5.2.1 资源释放 142 5.2.2 连接器 144 5.2.3 HTTP连接池 146 5.3 封装Client 147 5.4 请求Spring Boot微服务 148 5.4.1 不同的JSON解析方式 148 5.4.2 完整示例 150 5.5 JavaScript客户端 150 5.5.1 jQuery客户端 151 5.5.2 AngularJs客户端 152 5.6 本章小结 152 第6章 REST测试 153 6.1 Jersey测试框架 153 6.2 单元测试 156 6.2.1 集成Spring的单元测试 156 6.2.2 异步测试 158 6.3 集成测试 158 6.4 日志增强 159 6.5 本章小结 160 第7章 微服务 161 7.1 微服务技术栈 162 7.1.1 服务发现 163 7.1.2 可伸缩性 163 7.1.3 回到起点 164 7.2 REST服务与Spring Boot 165 7.2.1 Bootiful 165 7.2.2 RESTful 167 7.2.3 Actuator 168 7.3 REST服务与Spring Cloud 172 7.3.1 Spring Cloud Zookeeper 172 7.3.2 Spring Cloud Consul 182 7.3.3 Spring Cloud Etcd 187 7.4 本章小结 193 第8章 容器化 195 8.1 容器技术 195 8.1.1 容器 195 8.1.2 Docker技术栈 197 8.1.3 容器文化 199 8.2 REST服务与容器 201 8.2.1 开始容器化之路 201 8.2.2 开发自测容器化 204 8.3 容器化微服务 206 8.3.1 Zookeeper 207 8.3.2 Kafka 212 8.3.3 微服务 214 8.3.4 Nginx 217 8.4 本章小结 220 第9章 JAX-RS调优 223 9.1 使用缓存优化负载 223 9.1.1 缓存协商 223 9.1.2 条件GET 225 9.1.3 REST缓存实践 227 9.1.4 ab测试 229 9.2 使用版本号优化服务 229 9.2.1 何时使用版本号 230 9.2.2 如何使用版本号 230 9.3 使用参数配置优化服务 232 9.3.1 通用配置 232 9.3.2 服务器端和客户端配置类 233 9.4 Java虚拟机调优 234 9.4.1 虚拟机概述 234 9.4.2 内存溢出与内存泄漏 236 9.5 本章小结 238 第10章 REST安全 239 10.1 身份认证 240 10.1.1 基本认证 241 10.1.2 摘要认证 241 10.1.3 表单认证 242 10.1.4 证书认证 242 10.2 资源授权 244 10.2.1 容器管理权限 244 10.2.2 应用管理权限 246 10.3 认证与授权实现 247 10.3.1 基本认证与JDBCRealm 247 10.3.2 摘要认证与UserDatabase-Realm 255 10.3.3 表单认证与DataSource-Realm 258 10.3.4 Form认证和JAASRealm 263 10.3.5 证书认证与UserDatabase-Realm 266 10.4 JAX-RS2实现 270 10.4.1 Application类 270 10.4.2 资源类 271 10.4.3 资源测试类 271 10.5 REST服务与OAuth2 273 10.5.1 OAuth2概述 274 10.5.2 OAuth2流程 275 10.5.3 OAuth2实现 276 10.6 本章小结 280 参考资料 282 |