logo
分类于: 编程语言 计算机基础 职场办公

简介

分布式实时处理系统:原理、架构与实现

分布式实时处理系统:原理、架构与实现 0.0分

资源最后更新于 2020-03-29 04:51:57

作者:卢誉声

出版社:出版社机械工业出版社

出版日期:2016-06

文件格式: pdf

标签: 计算机 编程 知识 工具书

简介· · · · · ·

本书是一本由浅入深并详细讲解编写一套全新的基于C/C++的实时处理系统的编程实战书。本书从基础知识开始,到实时数据系统的架构设计,到代码的实际编写,逐步实现一个完整的实时数据处理系统。本书把这套全新的高性能分布式实时处理系统命名为Hurricane,该单词与Storm涵义类似,但略有不同,其中维基百科对Hurricane的解释是“A storm that has very strong fast winds and that moves over water”,即“在水面高速移动的飓风(storm)”。同时,为了支持高性能的实时处理系统,我们必须提供高性能的网络层,能够支持大量的并发,因此本书设计实现了一套跨平台的网络库Meshy,并将其作为Hurricane实时处理系统的传输层。作者:卢誉声

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

  1. 本书赞誉
  2. 序一
  3. 序二
  4. 序三
  5. 前言
  6. 第1章 分布式计算概述
  7. 1.1 分布式概念
  8. 1.2 分布式计算及其原理
  9. 1.3 分布式系统特性
  10. 1.3.1 容错性
  11. 1.3.2 高可扩展性
  12. 1.3.3 开放性
  13. 1.3.4 并发处理能力
  14. 1.3.5 透明性
  15. 1.4 通用分布式计算系统
  16. 1.4.1 Apache Hadoop
  17. 1.4.2 Apache Spark
  18. 1.4.3 Apache Storm
  19. 1.5 分布式存储系统
  20. 1.5.1 分布式存储概念
  21. 1.5.2 分布式存储系统特点
  22. 1.5.3 分布式存储系统分类
  23. 1.5.4 常见分布式存储系统
  24. 1.6 本章小结
  25. 第2章 分布式系统通信基础
  26. 2.1 时代的浪潮
  27. 2.1.1 集中式通信网
  28. 2.1.2 去中心化
  29. 2.2 可靠的数据链路
  30. 2.2.1 数据分组
  31. 2.2.2 帧同步
  32. 2.2.3 差错控制
  33. 2.2.4 链路管理
  34. 2.2.5 问题与解决方案
  35. 2.3 分层架构
  36. 2.4 网络层
  37. 2.4.1 寻找路径
  38. 2.4.2 网络分层
  39. 2.4.3 TCP/IP概述
  40. 2.4.4 IP协议
  41. 2.5 传输层
  42. 2.5.1 数据自动分包
  43. 2.5.2 端到端的传输
  44. 2.5.3 数据的可靠传输
  45. 2.6 应用层
  46. 2.6.1 ping
  47. 2.6.2 telnet
  48. 2.6.3 OSPF
  49. 2.6.4 DNS
  50. 2.6.5 HTTP协议
  51. 2.7 基于消息协议的公告牌
  52. 2.7.1 需求描述
  53. 2.7.2 制定协议
  54. 2.8 分布式通信举例——MapReduce
  55. 2.9 本章小结
  56. 第3章 通信系统高层抽象
  57. 3.1 RPC介绍
  58. 3.2 RESTful
  59. 3.2.1 资源和表现层
  60. 3.2.2 状态转移
  61. 3.2.3 RESTful总结
  62. 3.3 消息队列
  63. 3.4 序列化
  64. 3.5 使用Thrift实现公告牌服务
  65. 3.5.1 Apache Thrift介绍
  66. 3.5.2 安装Apache Thrift
  67. 3.5.3 编写Thrift文件
  68. 3.5.4 实现服务器
  69. 3.5.5 实现客户端
  70. 3.6 本章小结
  71. 第4章 走进C++高性能编程
  72. 4.1 基于C++的留言板系统
  73. 4.1.1 基于Socket的通信
  74. 4.1.2 C++中的内存与资源管理
  75. 4.2 来自服务器的天书
  76. 4.2.1 编码
  77. 4.2.2 C++98的编码缺陷
  78. 4.2.3 C++11编码支持
  79. 4.3 繁忙的服务器
  80. 4.3.1 分身乏术
  81. 4.3.2 fork——分身术
  82. 4.3.3 进程间通信
  83. 4.3.4 轻量级分身——线程
  84. 4.3.5 C++11线程
  85. 4.3.6 竞争问题与解决方案
  86. 4.3.7 多线程优化
  87. 4.3.8 异步I/O
  88. 4.4 消失不见的内存
  89. 4.4.1 内存分配与内存碎片
  90. 4.4.2 tcmalloc
  91. 4.4.3 内存池
  92. 4.5 本章小结
  93. 第5章 分布式实时处理系统
  94. 5.1 Hadoop与MapReduce
  95. 5.1.1 HDFS
  96. 5.1.2 MapReduce模型
  97. 5.2 Storm实时处理系统
  98. 5.2.1 历史
  99. 5.2.2 计算模型
  100. 5.2.3 总体架构
  101. 5.2.4 Storm元数据
  102. 5.2.5 Storm与Hadoop比较
  103. 5.3 有保证的消息处理
  104. 5.3.1 完全处理与元组树
  105. 5.3.2 元组的唯一标识
  106. 5.3.3 确认和失败
  107. 5.3.4 高效实现
  108. 5.4 本章小结
  109. 第6章 实时处理系统编程接口设计
  110. 6.1 总体架构设计
  111. 6.1.1 Hurricane与Storm比较
  112. 6.1.2 总体架构
  113. 6.1.3 任务接口
  114. 6.2 消息源接口设计
  115. 6.3 消息处理器接口设计
  116. 6.4 数据收集器设计
  117. 6.5 元组接口设计
  118. 6.6 序列化接口设计
  119. 6.7 本章小结
  120. 第7章 服务组件设计与实现
  121. 7.1 Executor设计与实现
  122. 7.1.1 事件驱动的消息队列
  123. 7.1.2 动态装载技术
  124. 7.1.3 Executor实现
  125. 7.2 Task设计与实现
  126. 7.3 本章小结
  127. 第8章 管理服务设计与实现
  128. 8.1 President功能与设计
  129. 8.2 President实现
  130. 8.2.1 简单的网络通信实现
  131. 8.2.2 Topology装载实现
  132. 8.2.3 Manager管理调度实现
  133. 8.2.4 序列化实现
  134. 8.3 本章小结
  135. 第9章 实时处理系统编程接口实现
  136. 9.1 消息源接口实现
  137. 9.1.1 消息源执行器
  138. 9.1.2 WordCount实现实例
  139. 9.2 消息处理单元接口实现
  140. 9.2.1 消息处理单元执行器
  141. 9.2.2 事件处理
  142. 9.2.3 WordCount实现实例
  143. 9.3 数据收集器实现
  144. 9.3.1 分发策略
  145. 9.3.2 传输层实现
  146. 9.4 本章小结
  147. 第10章 可靠消息处理
  148. 10.1 基本概念
  149. 10.1.1 完全处理
  150. 10.1.2 失败与重发
  151. 10.2 接口设计
  152. 10.3 具体实现
  153. 10.3.1 简单实现
  154. 10.3.2 高效实现
  155. 10.4 本章小结
  156. 第11章 通信系统设计与实现
  157. 11.1 I/O多路复用方案解析
  158. 11.1.1 基本网络编程接口
  159. 11.1.2 非阻塞的服务器程序
  160. 11.1.3 使用select()接口的基于事件驱动的服务器模型
  161. 11.1.4 使用epoll实现异步事件通知模型
  162. 11.2 基础工具
  163. 11.2.1 线程工具
  164. 11.2.2 日志工具
  165. 11.3 传输层实现
  166. 11.3.1 Reactor模式
  167. 11.3.2 定义抽象TP传输层
  168. 11.3.3 实现基于epoll的TP传输层
  169. 11.3.4 实现基于IOCP的TP传输层
  170. 11.4 应用层HTTP实现
  171. 11.4.1 HttpContext
  172. 11.4.2 HttpRequest
  173. 11.4.3 HttpResponse
  174. 11.4.4 HttpConnection
  175. 11.4.5 HttpServer
  176. 11.4.6 总结
  177. 11.5 跨平台分割编译
  178. 11.5.1 Makefile
  179. 11.5.2 Kake
  180. 11.6 与实时处理系统集成
  181. 11.6.1 修改NetListener
  182. 11.6.2 修改NetConnector
  183. 11.7 本章小结
  184. 第12章 事务性Topology实现
  185. 12.1 Exact-once语义解决方案
  186. 12.2 设计细节
  187. 12.2.1 构造事务性Topology
  188. 12.2.2 消息处理单元
  189. 12.3 事务性Topology API
  190. 12.3.1 消息处理单元
  191. 12.3.2 事务性消息源
  192. 12.4 本章小结
  193. 第13章 多语言接口
  194. 13.1 C语言通用接口
  195. 13.1.1 元组接口
  196. 13.1.2 消息源接口
  197. 13.1.3 消息处理单元接口
  198. 13.1.4 计算拓扑接口
  199. 13.2 Python接口
  200. 13.2.1 ctypes
  201. 13.2.2 元组接口
  202. 13.2.3 消息源接口
  203. 13.2.4 消息处理单元接口
  204. 13.2.5 计算拓扑接口
  205. 13.2.6 应用示例
  206. 13.3 JavaScript接口
  207. 13.3.1 V8引擎
  208. 13.3.2 Node.js
  209. 13.3.3 V8的互操作接口
  210. 13.3.4 任务接口
  211. 13.3.5 消息源接口
  212. 13.3.6 消息处理单元接口
  213. 13.3.7 计算拓扑接口
  214. 13.3.8 应用示例
  215. 13.4 Java接口
  216. 13.4.1 任务接口
  217. 13.4.2 消息源接口
  218. 13.4.3 消息处理单元接口
  219. 13.4.4 计算拓扑接口
  220. 13.4.5 本地代码
  221. 13.4.6 应用示例
  222. 13.5 Swift接口
  223. 13.5.1 应用范围
  224. 13.5.2 任务接口
  225. 13.5.3 消息源接口
  226. 13.5.4 消息处理单元接口
  227. 13.5.5 计算拓扑接口
  228. 13.6 本章小结
  229. 第14章 Squared设计与实现——实现高级抽象元语
  230. 14.1 Storm Trident介绍
  231. 14.1.1 Squared示例
  232. 14.1.2 DRPC示例
  233. 14.2 Squared实现
  234. 14.2.1 SquaredTopology和Spout
  235. 14.2.2 SquaredBolt
  236. 14.2.3 Stream
  237. 14.2.4 状态存储
  238. 14.2.5 DRPC实现
  239. 14.2.6 操作与处理节点
  240. 14.2.7 流操作
  241. 14.3 本章小结
  242. 第15章 实战:日志流处理
  243. 15.1 日志流处理设计方案
  244. 15.2 实现Topology
  245. 15.2.1 编写消息源
  246. 15.2.2 编写索引消息处理单元
  247. 15.2.3 编写统计消息处理单元
  248. 15.3 本章小结
  249. 第16章 实战:频繁组合查找
  250. 16.1 背景介绍
  251. 16.1.1 数据挖掘概念
  252. 16.1.2 关联规则和频繁项集
  253. 16.1.3 啤酒与尿布
  254. 16.2 频繁二项集挖掘方法
  255. 16.2.1 频繁二项集
  256. 16.2.2 算法设计思路
  257. 16.2.3 Hurricane实现思路
  258. 16.3 编写Spout
  259. 16.4 编写Bolt
  260. 16.4.1 SplitBolt
  261. 16.4.2 PairCountBolt
  262. 16.4.3 PairTotalCountBolt
  263. 16.4.4 ConfidenceComputeBolt
  264. 16.4.5 SupportComputeBolt
  265. 16.4.6 FilterBolt
  266. 16.5 编写Topology
  267. 16.6 本章小结
  268. 第17章 实战:在AWS和阿里云上部署Hurricane实时处理系统
  269. 17.1 AWS部署
  270. 17.1.1 搭建虚拟私有云
  271. 17.1.2 配置安全组
  272. 17.1.3 加载EC2实例
  273. 17.1.4 弹性IP地址管理
  274. 17.2 阿里云部署
  275. 17.2.1 创建虚拟私有云
  276. 17.2.2 管理安全组
  277. 17.2.3 创建ECS
  278. 17.2.4 SSH登录
  279. 17.3 Hurricane分布式部署与管理
  280. 17.3.1 分布式部署原理
  281. 17.3.2 分布式安装配置
  282. 17.3.3 分布式启动
  283. 17.4 部署分布式实时处理系统
  284. 17.5 未来之路
  285. 17.6 本章小结