您好,欢迎来到聚文网。 登录 免费注册
高性能服务系统构建与实战

高性能服务系统构建与实战

  • 字数: 595千字
  • 装帧: 简装
  • 出版社: 电子工业出版社
  • 作者: 银文杰 著
  • 出版日期: 2017-07-01
  • 商品条码: 9787121315091
  • 版次: 1
  • 开本: 其他
  • 页数: 440
  • 出版年份: 2017
定价:¥89 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
影响业务系统性能的因素很多,计算机系统的各个层面都有涉及:从硬件、网络、操作系统、中间件、存储,直到自身代码质量。所有技术团队都曾为解决性能问题、提高性能峰值绞尽脑汁,从千头万绪到生不如死。本书基于作者10 余年工作经历中踩过的技术神坑,总结整理而成。虽然不能将计算机系统各个层面中影响性能的因素全部介绍完,但还是希望通过讨论业务系统负载层、网络通信层解决性能问题的过程,启发读者,为读者在工作中解决性能问题提供借鉴思路。
作者简介
银文杰,笔名“说好不能打脸”,博客地址blog.csdn.net/yinwenjie。资历IT屌丝一枚,很大爱好就是敲敲代码,写写博客,研究研究创业热点。CSDN博客作家,CSDN Java EE知识库特约编辑。曾参与电信行业、物流行业多个核心系统建设,对系统顶层设计、技术线路规划、业务系统性能调整有较丰富的经验;也曾有几年头脑发热拍案创业,兼职市场销售、电话客服、公司保安以及清洁大叔。
目录
部分 前序 章 那些年一起踩的坑 ........................................................................................................ 2 1.1 性能问题 ........................................................................................................................... 2 1.2 可用性问题 ....................................................................................................................... 3 1.3 异常处理问题 ................................................................................................................... 4 1.4 系统间依赖问题 ............................................................................................................... 4 1.5 系统雪崩问题 ................................................................................................................... 7 第2 章 业务系统分解 ............................................................................................................... 9 2.1 负载层技术 ..................................................................................................................... 10 2.2 业务层技术 ..................................................................................................................... 12 2.3 存储层技术 ..................................................................................................................... 13 第二部分 负载层技术与设计 第3 章 Nginx 技术 .................................................................................................................. 16 3.1 Nginx 中的基本技术理论 ............................................................................................... 16 3.1.1 一致性Hash 算法 .................................................................................................................16 3.1.2 轮询与加权轮询 ...................................................................................................................18 3.2 Nginx 的安装和使用 ....................................................................................................... 20 3.3 Nginx 的重要配置讲解 ................................................................................................... 22 3.4 Nginx 的重要设置 ........................................................................................................... 25 3.4.1 use [ kqueue | rtsig | epoll | select | poll ] ................................................................................25 3.4.2 worker_processes 和worker_connections .............................................................................26 3.4.3 max client 的计算方式 ..........................................................................................................29 3.5 Nginx 的常用模块 ........................................................................................................... 30 3.5.1 gzip 压缩模块........................................................................................................................30 3.5.2 rewrite 模块 ...........................................................................................................................32 3.5.3 健康检查模块 .......................................................................................................................34 3.5.4 图片动态缩略模块 ...............................................................................................................37 第4 章 LVS 技术 .................................................................................................................... 41 4.1 网络协议基础知识 ......................................................................................................... 41 4.1.1 链路层报文 ...........................................................................................................................42 4.1.2 网络层IP 报文 ......................................................................................................................42 4.1.3 传输层TCP 报文 ..................................................................................................................44 4.2 LVS 的三种工作方式 ..................................................................................................... 45 4.2.1 LVS-NAT 工作方式 .............................................................................................................45 4.2.2 LVS-DR 工作方式 ................................................................................................................47 4.2.3 LVS-TUN 工作方式 .............................................................................................................49 4.2.4 LVS 调度方式 .......................................................................................................................52 4.3 LVS 设置实战 ................................................................................................................. 53 4.3.1 LVS-NAT 方式设置 .............................................................................................................53 4.3.2 LVS-DR 模式设置 ................................................................................................................57 4.3.3 ipvsadm 参数汇总 .................................................................................................................60 第5 章 其他负载层技术 .......................................................................................................... 63 5.1 DNS 和智能DNS ............................................................................................................ 63 5.2 CDN 网络 ........................................................................................................................ 65 5.3 Keepalived ....................................................................................................................... 67 5.4 不得不提的Tengine ....................................................................................................... 68 第6 章 负载层性能实战 .......................................................................................................... 69 6.1 负载层技术实战场景 ..................................................................................................... 69 6.1.1 负载场景一 ...........................................................................................................................69 6.1.2 负载场景二 ...........................................................................................................................70 6.1.3 负载场景三 ...........................................................................................................................71 6.1.4 负载场景四 ...........................................................................................................................72 6.2 方案一:使用Nginx 初步解决性能瓶颈问题 .............................................................. 72 6.3 方案二:使用LVS + Keepalived + Nginx 增加吞吐量和稳定性 ................................ 74 6.4 方案三:使用DNS 和CDN 网络优化整体性能 .......................................................... 75 第三部分 系统间通信 第7 章 系统间通信:网络I/O 模型 ........................................................................................ 78 7.1 模型 ................................................................................................................................ 78 7.1.1 信息格式 ...............................................................................................................................79 7.1.2 网络协议 ...............................................................................................................................80 7.1.3 通信方式/框架 ......................................................................................................................82 7.2 网络I/O 模型:阻塞模式 .............................................................................................. 82 7.2.1 通信模型概要 .......................................................................................................................82 7.2.2 阻塞模式深入分析 ...............................................................................................................87 7.2.3 问题的根源 ...........................................................................................................................91 7.3 网络I/O 模型:同步非阻塞模式――对阻塞模式的改进 ........................................... 93 7.3.1 首次改进 ...............................................................................................................................97 7.3.2 再次改进 ...............................................................................................................................99 7.3.3 依然存在问题 ..................................................................................................................... 101 7.4 网络I/O 模型:多路复用(I/O Multiplex)............................................................... 101 7.4.1 典型的多路复用I/O 实现 .................................................................................................. 102 7.4.2 Java 对多路复用I/O 技术的支持 ....................................................................................... 103 7.4.3 Java NIO 框架简要设计分析 ............................................................................................. 112 7.4.4 Java 实例改进 ..................................................................................................................... 114 7.4.5 多路复用I/O 的优缺点 ...................................................................................................... 118 7.5 网络I/O 模型:异步I/O .............................................................................................. 119 7.5.1 Java 对AIO 的支持............................................................................................................. 120 7.5.2 Java 提供的 AIO 支持示例 ................................................................................................ 122 7.5.3 还有改进可能 ..................................................................................................................... 128 7.6 第三方组件:Netty ....................................................................................................... 128 7.6.1 为什么需要Netty ............................................................................................................... 129 7.6.2 Netty 快速上手 .................................................................................................................... 130 7.6.3 Netty 中的重要概念 ............................................................................................................ 135 7.7 再次审视Netty 的作用 ................................................................................................. 141 7.7.1 对网络I/O 模型的封装 ...................................................................................................... 142 7.7.2 对数据信息格式的封装 ..................................................................................................... 143 7.7.3 解决了“技术层”框架中的技术问题 .............................................................................. 146 7.7.4 解决半包问题和粘包问题 ................................................................................................. 148 7.8 不得不提的线程池 ....................................................................................................... 152 7.8.1 为什么要使用线程池 ......................................................................................................... 152 7.8.2 线程池基本使用 ................................................................................................................. 155 7.8.3 ThreadPoolExecutor 逻辑结构和工作方式 ........................................................................ 156 7.8.4 线程池的等待队列 ............................................................................................................. 159 7.8.5 拒绝任务 ............................................................................................................................. 165 7.8.6 ThreadPoolExecutor 中常用属性总结 ................................................................................ 168 第8 章 RPC 与系统间调用 ................................................................................................... 170 8.1 RPC 技术原理 ............................................................................................................... 170 8.1.1 什么是RPC ......................................................................................................................... 170 8.1.2 RPC 要素 ............................................................................................................................. 171 8.1.3 更泛化的RPC 定义 ............................................................................................................ 173 8.1.4 典型的RPC 框架介绍 ........................................................................................................ 174 8.1.5 RPC 框架的性能依据 ......................................................................................................... 175 8.2 RPC 实践:Apache Thrift 基本使用 ............................................................................ 176 8.2.1 IDL 格式概要 ...................................................................................................................... 177 8.2.2 简单的Apache Thrift 代码 ................................................................................................. 181 8.3 RPC 实践:Apache Thrift 深入分析 ............................................................................ 185 8.3.1 Apache Thrift 与消息格式 .................................................................................................. 185 8.3.2 Apache Thrift 与通信模型 .................................................................................................. 190 8.3.3 Apache Thrift 与线程池 ...................................................................................................... 193 8.4 RPC 实践:解决异常问题 ........................................................................................... 193 8.4.1 分布式业务的异常解决思路.............................................................................................. 195 8.4.2 事务补偿的简单实现 ......................................................................................................... 201 8.5 SOA 和服务治理 ........................................................................................................... 224 8.5.1 SOA 概述 ............................................................................................................................ 225 8.5.2 ESB 概述 ............................................................................................................................. 227 8.5.3 常见的ESB 产品 ................................................................................................................ 229 8.5.4 服务治理框架 ..................................................................................................................... 231 第9 章 系统间通信:消息队列技术...................................................................................... 237 9.1 消息队列原理 ............................................................................................................... 237 9.1.1 消息 .................................................................................................................................... 237 9.1.2 服务结构 ............................................................................................................................. 238 9.2 消息协议 ....................................................................................................................... 238 9.2.1 XMPP 协议 ......................................................................................................................... 239 9.2.2 Stomp 协议 .......................................................................................................................... 241 9.2.3 MQTT 协议 ......................................................................................................................... 244 9.2.4 AMQP 协议 ......................................................................................................................... 248 9.2.5 不得不提的JMS 规范 ........................................................................................................ 251 9.3 MQ 实践:ActiveMQ 基本概念和使用 ....................................................................... 253 9.3.1 ActiveMQ 的简易安装过程 ................................................................................................ 253 9.3.2 ActiveMQ 的其他命令参数 ................................................................................................ 255 9.3.3 在ActiveMQ 中传递Stomp 消息 ...................................................................................... 256 9.3.4 ActiveMQ 中的Queue 和Topics ........................................................................................ 258 9.3.5 JMS 和协议间转换 ............................................................................................................. 260 9.3.6 持久化消息和非持久化消息.............................................................................................. 266 9.3.7 持续订阅和非持续订阅 ..................................................................................................... 267 9.4 MQ 实践:ActiveMQ 性能优化 .................................................................................. 267 9.4.1 ActiveMQ 性能优化思路 .................................................................................................... 267 9.4.2 ActiveMQ 中的网络配置 .................................................................................................... 268 9.4.3 ActiveMQ 处理规则和优化 ................................................................................................ 273 9.4.4 ActiveMQ 的持久消息存储方案 ........................................................................................ 285 9.5 MQ 实践:ActiveMQ 集群方案 .................................................................................. 299 9.5.1 ActiveMQ 高性能方案 ....................................................................................................... 300 9.5.2 ActiveMQ 高可用方案 ....................................................................................................... 311 9.6 其他MQ技术:Apache Kafka .................................................................................... 321 9.6.1 Kafka 设计概要 ................................................................................................................... 321 9.6.2 Kafka 集群安装:配置过程 ............................................................................................... 333 9.6.3 Kafka 常用命令 ................................................................................................................... 336 第四部分 场景实战 0 章 场景实战:其他储备知识 ....................................................................................... 340 10.1 数据存储 ..................................................................................................................... 340 10.1.1 块存储 ............................................................................................................................ 341 10.1.2 共享存储/共享文件存储 ................................................................................................ 343 10.1.3 对象存储系统 ................................................................................................................ 344 10.2 磁盘阵列系统 ............................................................................................................. 345 10.2.1 RAID 0 ............................................................................................................................ 346 10.2.2 RAID 1 ............................................................................................................................ 347 10.2.3 RAID 10 和RAID 01 ..................................................................................................... 348 10.2.4 RAID 5 ............................................................................................................................ 349 10.3 NoSQL 技术 ................................................................................................................ 351 1 章 场景实战:Kafka 与日志采集 ................................................................................. 355 11.1 Kafka 应用场景:场景说明 ....................................................................................... 355 11.2 Kafka 应用场景一:侵入式方案 ............................................................................... 357 11.2.1 设计重点 ........................................................................................................................ 358 11.2.2 编码过程:生产者和业务系统集成 ............................................................................. 361 11.2.3 是否使用Spring Integration-Kafka ................................................................................ 366 11.2.4 编码过程:消费者端 ..................................................................................................... 367 11.3 Kafka 应用场景二:调整侵入式方案 ....................................................................... 371 11.3.1 方案一的问题所在 ......................................................................................................... 371 11.3.2 方案二的解决思路 ......................................................................................................... 371 11.3.3 方案二的主要代码示例 ................................................................................................. 377 11.3.4 其他设计思考 ................................................................................................................ 380 11.3.5 百度站长统计工具 ......................................................................................................... 382 11.4 Kafka 应用场景三:非侵入式方案 ........................................................................... 383 11.4.1 Apache Flume 介绍 ........................................................................................................ 383 11.4.2 设计方案 ........................................................................................................................ 384 11.4.3 配置过程概要 ................................................................................................................ 386 11.4.4 方案三细节说明............................................................................................................. 388 2 章 场景实战:图片服务 .............................................................................................. 392 12.1 需求场景 ..................................................................................................................... 392 12.2 概要设计阶段 ............................................................................................................. 393 12.2.1 分布式文件系统选型 ..................................................................................................... 394 12.2.2 缓存系统选型 ................................................................................................................ 395 12.2.3 路由层选型 .................................................................................................................... 397 12.2.4 架构设计细化 ................................................................................................................ 400 12.2.5 其他技术选型 ................................................................................................................ 401 12.3 关键技术点考量 ......................................................................................................... 403 12.3.1 责任链模式 .................................................................................................................... 403 12.3.2 Redis 中的数据结构选择 ............................................................................................... 404 12.3.3 使用Spring Boot ............................................................................................................ 406 12.3.4 其他技术特性 ................................................................................................................ 408 12.4 详细设计阶段 ............................................................................................................. 412 12.4.1 位图基本知识 ................................................................................................................ 412 12.4.2 Nginx 中的Proxy Cache 配置 ........................................................................................ 418 12.4.3 责任链进行图片处理 ..................................................................................................... 420 12.4.4 Redis 缓存操作 ............................................................................................................... 423

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网