图书介绍

高性能服务系统构建与实战pdf电子书版本下载

高性能服务系统构建与实战
  • 银文杰编著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121315091
  • 出版时间:2017
  • 标注页数:428页
  • 文件大小:283MB
  • 文件页数:441页
  • 主题词:软件设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

高性能服务系统构建与实战PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分 前序 2

第1章 那些年一起踩的坑 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

第二部分 负载层技术与设计 16

第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

第三部分 系统间通信 78

第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

第四部分 场景实战 340

第10章 场景实战:其他储备知识 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

第11章 场景实战: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

第12章 场景实战:图片服务 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

精品推荐