ZeroMQ:云时代极速消息通信库
Pieter Hintjens
卢涛, 李颖 译
出版时间:2015年01月
页数:511
“本年度你能读到的最好的爱与套接字的故事。”
—— Alexis Richardson,VMware的高级主管和新人训练师

请潜心研究?MQ(又名ZeroMQ)这个智能套接字库,它让你的应用程序能够获得快速、简便、基于消息的并发性。有了这本快节奏的指南,你将在实践中学习如何使用这个可扩展、轻量级且高度灵活的网络工具,从而在集群、云服务端等各种多系统环境之间交换消息。
?MQ的维护者Pieter Hintjens带你观察现实世界的应用程序,并用C语言编写的扩展例子帮助你使用?MQ的API、套接字和模式。了解如何使用特定的?MQ编程技术,构建多线程应用程序,并创建自己的消息传递架构。你会学到?MQ如何与多种编程语言和大多数操作系统共用,只有很少的成本或根本没有成本。
· 了解?MQ的主要模式:请求-应答、发布-订阅和管道
· 通过建立几个小应用程序来使用?MQ套接字和模式
· 通过工作实例探索?MQ的请求-应答模式的高级使用
· 构建一个在代码或硬件出现故障时保持工作可靠性的请求-应答模式
· 扩展?MQ的核心发布-订阅模式的性能、可靠性、状态分发与监控
· 了解用?MQ来构建分布式架构的技术
· 探索为分布式应用程序建立一个通用的框架有什么要求
Pieter Hintjens,iMatix公司的CEO和首席软件设计师,该公司创建了?MQ。他是自由信息基础设施基金会(FFII)的前任会长,欧洲专利大会和数字标准组织的创办人,Wikidot公司的前CEO,他还是?MQ的一位维护者。
  1. 前言
  2. 第1部分 学习如何使用φMQ来开展工作
  3. 第1章 基础知识
  4. 修复这个世界
  5. 本书的读者对象
  6. 获取示例
  7. 问过就必有收获
  8. 在字符串上的小注解
  9. 版本报告
  10. 获得消息
  11. 分而治之
  12. 用φMQ编程
  13. 获取正确的上下文
  14. 执行彻底的退出
  15. 为什么我们需要φMQ
  16. 套接字的可扩展性
  17. 从φMQ v2.2升级到φMQ v3.2
  18. 警告:不稳定的典范!
  19. 第2章 套接字和模式
  20. 套接字API
  21. 把套接字接入网络拓扑
  22. 使用套接字来传输数据
  23. 单播传输
  24. φMQ不是一个中性载体
  25. I/O线程
  26. 消息传递模式
  27. 高级别消息传递模式
  28. 处理消息
  29. 处理多个套接字
  30. 多部分消息
  31. 中间层及代理
  32. 动态发现问题
  33. 共享队列(DEALER和ROUTER套接字)
  34. φMQ的内置代理功能
  35. 传输桥接
  36. 处理错误和ETERM
  37. 处理中断信号
  38. 检测内存泄漏
  39. 使用φMQ编写多线程程序
  40. 线程间信令(PAIR套接字)
  41. 节点协调
  42. 零拷贝
  43. 发布-订阅消息封包
  44. 高水位标记
  45. 消息丢失问题的解决方案
  46. 第3章 高级请求-应答模式
  47. 请求-应答机制
  48. 简单的应答封包
  49. 扩展的应答封包
  50. 这有什么好处呢
  51. 请求-应答套接字回顾
  52. 请求-应答组合
  53. REQ到REP组合
  54. DEALER到REP组合
  55. REQ到ROUTER组合
  56. DEALER到ROUTER组合
  57. DEALER到DEALER组合
  58. ROUTER到ROUTER组合
  59. 无效组合
  60. 探索ROUTER套接字
  61. 身份和地址
  62. ROUTER错误处理
  63. 负载均衡模式
  64. ROUTER代理和REQ工人
  65. ROUTER代理及DEALER工人
  66. 负载均衡的消息代理
  67. 用于φMQ的一个高级别的API
  68. 高级别API的特点
  69. CZMQ高级别API
  70. 异步客户端/ 服务器模式
  71. 能够工作的示例:跨代理路由
  72. 建立详情
  73. 单集群架构
  74. 扩展到多个集群
  75. 联盟与对等比较
  76. 命名规范
  77. 状态流原型
  78. 本地流和云端流原型
  79. 总结
  80. 第4章 可靠的请求-应答模式
  81. 什么是“可靠性”
  82. 可靠性设计
  83. 客户端可靠性(懒惰海盗模式)
  84. 基本可靠队列(简单海盗模式)
  85. 健壮的可靠队列(偏执海盗模式)
  86. 信号检测
  87. 置若罔闻地将它关闭
  88. 单向信号检测
  89. 乒乓信号检测
  90. 针对偏执海盗的信号检测
  91. 合同和协议
  92. 面向服务的可靠队列(管家模式)
  93. 异步管家模式
  94. 服务发现
  95. 幂等服务
  96. 断开连接的可靠性(泰坦尼克模式)
  97. 高可用性对(双星模式)
  98. 详细需求
  99. 避免脑裂症状
  100. 双星实现
  101. 双星反应器
  102. 无代理可靠性(自由职业者模式)
  103. 模型一:简单的重试和故障转移
  104. 模型二:粗暴猎枪屠杀
  105. 模式三:复杂和讨厌的
  106. 结论
  107. 第5章 高级发布-订阅模式
  108. 发布-订阅模式的优点和缺点
  109. 发布-订阅跟踪(特浓咖啡模式)
  110. 最后一个值缓存
  111. 慢速订阅者检测(自杀蜗牛模式)
  112. 高速订阅者(黑盒模式)
  113. 可靠的发布-订阅(克隆模式)
  114. 集中式与分散式
  115. 将状态表示为键-值对
  116. 得到带外的快照
  117. 重新发布来自客户端的更新
  118. 处理子树
  119. 临时值
  120. 使用反应器
  121. 在双星模式中添加可靠性
  122. 集群的散列映射协议
  123. 构建一个多线程栈和API
  124. 第2部分 使用φMQ的软件工程
  125. 第6章 φMQ社区
  126. φMQ社区的架构
  127. 如何制作真正的大型架构
  128. 软件架构的心理学
  129. 合同
  130. 过程
  131. 疯狂,美丽,并且容易
  132. 陌生人,遇见陌生人
  133. 无限的财富
  134. 照管和培育
  135. φMQ过程:C4
  136. 语言
  137. 目标
  138. 热身
  139. 许可和所有权
  140. 对补丁程序的要求
  141. 开发过程
  142. 建立稳定的版本
  143. 公共合同的演变
  144. 一个实际例子
  145. Git分支是有害的
  146. 简单性与复杂性的对比
  147. 更改延迟
  148. 学习曲线
  149. 出故障的成本
  150. 前期协调
  151. 可扩展性
  152. 惊奇和期望
  153. 参与的经济学
  154. 在冲突中的强壮性
  155. 隔离的保证
  156. 能见度
  157. 结论
  158. 为创新而设计
  159. 双桥传说
  160. φMQ的路线图是如何失去的
  161. 垃圾桶化的设计
  162. 复杂化的设计
  163. 简约化的设计
  164. 职业倦怠
  165. 成功模式
  166. 懒惰的完美主义者
  167. 仁慈暴君
  168. 天和地
  169. 门户开放
  170. 大笑的小丑
  171. 留心的将军
  172. 社会工程师
  173. 不朽的园丁
  174. 滚石
  175. 海盗帮
  176. 快闪族
  177. 加那利看守
  178. 执行绞刑的刽子手
  179. 历史学家
  180. 煽动者
  181. 神秘人
  182. 第7章 使用φMQ的高级架构
  183. 用于弹性设计的面向消息模式
  184. 第1步:内部化的语义
  185. 第2步:描绘一个粗略的架构
  186. 第3步:决定合同
  187. 第4步:编写一个最小的端到端解决方案
  188. 第5步:解决一个问题,然后重复
  189. Unprotocol
  190. 合同是艰难的
  191. 如何编写Unprotocol
  192. 为什么使用GPLv3的公开规范
  193. 使用ABNF
  194. 廉价或讨厌的模式
  195. 序列化数据
  196. φMQ组帧
  197. 序列化语言
  198. 序列化库
  199. 手写的二进制序列化
  200. 代码生成
  201. 传输文件
  202. 状态机
  203. 使用SASL认证
  204. 大型文件发布:FileMQ
  205. 为什么要制作FileMQ
  206. 最初的设计切片:API
  207. 最初的设计切片:协议
  208. 构建和尝试FileMQ
  209. 内部架构
  210. 公共API
  211. 设计说明
  212. 配置
  213. 文件稳定性
  214. 递交通知
  215. 符号链接
  216. 恢复和后期加入者
  217. 测试用例:曲目工具
  218. 得到一个官方端口号
  219. 第8章 分布式计算的框架
  220. 用于现实世界的设计
  221. 无线网络的秘密生活
  222. 为什么网状网络现在还没出现
  223. 一些物理知识
  224. 现状是什么
  225. 结论
  226. 发现
  227. 通过原始套接字先发制人的发现
  228. 使用UDP广播协同发现
  229. 一台设备上的多个节点
  230. 设计API
  231. 关于UDP的更多内容
  232. 分拆一个库项目
  233. 点对点消息传递
  234. UDP信标帧
  235. 真正的对等连接(和谐模式)
  236. 检测失踪
  237. 群发消息
  238. 测试与模拟
  239. 使用断言
  240. 前期测试
  241. Zyre测试仪
  242. 测试结果
  243. 跟踪活动
  244. 处理阻塞节点
  245. 分布式日志记录和监视
  246. 一个合理的最小实现
  247. 协议断言
  248. 二进制日志记录协议
  249. 内容分发
  250. 编写Unprotocol
  251. 结论
  252. 第9章 后记
  253. 番外篇
  254. Rob Gagnon的故事
  255. Tom van Leeuwen的故事
  256. Michael Jakl的故事
  257. Vadim Shalts的故事
  258. 本书是如何诞生的
  259. 消除摩擦
  260. 许可
  261. 索引
书名:ZeroMQ:云时代极速消息通信库
作者:Pieter Hintjens
译者:卢涛, 李颖 译
国内出版社:电子工业出版社
出版时间:2015年01月
页数:511
书号:978-7-121-25311-9
原版书书名:Messaging for Many Applications
原版书出版商:O'Reilly Media
Pieter Hintjens
 
Pieter Hintjens,iMatix公司的CEO和首席软件设计师,该公司创建了φMQ。他是自由信息基础设施基金会(FFII)的前任会长,欧洲专利大会和数字标准组织的创办人,Wikidot公司的前CEO,他还是φMQ的一位维护者。