具体描述
《ZeroMQ:云时代极速消息通信库》介绍ZeroMQ 的API、套接字和模式的使用。通过建立应用程序来讲解如何使用ZeroMQ 编程技术构建多线程应用程序,并创建自己的消息传递架构。《ZeroMQ:云时代极速消息通信库》设计了大量工作实例来实现请求- 应答模式的高级使用和容错性,并对发布- 订阅模式的性能、可靠性、状态分发与监控进行了扩展。
《ZeroMQ:云时代极速消息通信库》面向的读者是希望制作大规模分布式软件的专业程序员和有志于这方面研究的专业人士,旨在帮助他们解决大规模、可扩展、低成本、高效率的问题,书中还展现了ZeroMQ所需的网络和分布式计算概念。
作者简介
Pieter Hintjens,iMatix公司的CEO和首席软件设计师,该公司创建了ØMQ。他是自由信息基础设施基金会(FFII)的前任会长,欧洲专利大会和数字标准组织的创办人,Wikidot公司的前CEO,他还是ØMQ的一位维护者。
目录信息
第1部分 学习如何使用φMQ 来开展工作
第1章 基础知识 3
修复这个世界 3
本书的读者对象 5
获取示例 5
问过就必有收获 5
在字符串上的小注解 10
版本报告 12
获得消息 12
分而治之 16
用φMQ 编程 21
获取正确的上下文 22
执行彻底的退出 22
为什么我们需要φMQ 23
套接字的可扩展性 27
从φMQ v2.2 升级到φMQ v3.2 28
警告:不稳定的典范! 29
第2章 套接字和模式 31
套接字API 32
把套接字接入网络拓扑 32
使用套接字来传输数据 34
单播传输 35
φMQ 不是一个中性载体 35
I/O 线程 36
消息传递模式 37
高级别消息传递模式 38
处理消息 38
处理多个套接字 41
多部分消息 44
中间层及代理 45
动态发现问题 46
共享队列(DEALER 和ROUTER 套接字) 48
φMQ 的内置代理功能 53
传输桥接 55
处理错误和ETERM 56
处理中断信号 61
检测内存泄漏 63
使用φMQ 编写多线程程序 64
线程间信令(PAIR 套接字) 69
节点协调 71
零拷贝 75
发布- 订阅消息封包 76
高水位标记 78
消息丢失问题的解决方案 80
第3章 高级请求- 应答模式 83
请求- 应答机制 83
简单的应答封包 84
扩展的应答封包 84
这有什么好处呢 87
请求- 应答套接字回顾 88
请求- 应答组合 88
REQ 到REP 组合 89
DEALER 到REP 组合 89
REQ 到ROUTER 组合 90
DEALER 到ROUTER 组合 90
DEALER 到DEALER 组合 90
ROUTER 到ROUTER 组合 90
无效组合 91
探索ROUTER 套接字 91
身份和地址 92
ROUTER 错误处理 .93
负载均衡模式 94
ROUTER 代理和REQ 工人 95
ROUTER 代理及DEALER 工人 97
负载均衡的消息代理 98
用于φMQ 的一个高级别的API 105
高级别API 的特点 107
CZMQ 高级别API 108
异步客户端/ 服务器模式 115
能够工作的示例:跨代理路由 120
建立详情 120
单集群架构 121
扩展到多个集群 122
联盟与对等比较 124
命名规范 126
状态流原型 127
本地流和云端流原型 130
总结 137
第4章 可靠的请求- 应答模式 147
什么是“可靠性” 147
可靠性设计 148
客户端可靠性(懒惰海盗模式) 149
基本可靠队列(简单海盗模式) 154
健壮的可靠队列(偏执海盗模式) 157
信号检测 166
置若罔闻地将它关闭 166
单向信号检测 167
乒乓信号检测 167
针对偏执海盗的信号检测 168
合同和协议 170
面向服务的可靠队列(管家模式) 170
异步管家模式 195
服务发现 201
幂等服务 203
断开连接的可靠性(泰坦尼克模式) 203
高可用性对(双星模式) 216
详细需求 218
避免脑裂症状 220
双星实现 221
双星反应器 228
无代理可靠性(自由职业者模式) 234
模型一:简单的重试和故障转移 235
模型二:粗暴猎枪屠杀 238
模式三:复杂和讨厌的 244
结论 256
第5章 高级发布- 订阅模式 257
发布- 订阅模式的优点和缺点 257
发布- 订阅跟踪(特浓咖啡模式) 259
最后一个值缓存 262
慢速订阅者检测(自杀蜗牛模式) 267
高速订阅者(黑盒模式) 270
可靠的发布- 订阅(克隆模式) 272
集中式与分散式 273
将状态表示为键- 值对 273
得到带外的快照 284
重新发布来自客户端的更新 290
处理子树 295
临时值 298
使用反应器 306
在双星模式中添加可靠性 311
集群的散列映射协议 321
构建一个多线程栈和API 325
第2部分 使用φMQ 的软件工程
第6章 φMQ 社区 341
φMQ 社区的架构 342
如何制作真正的大型架构 343
软件架构的心理学 344
合同 346
过程 348
疯狂,美丽,并且容易 348
陌生人,遇见陌生人 349
无限的财富 349
照管和培育 350
φMQ 过程:C4 351
语言 351
目标 352
热身 354
许可和所有权 355
对补丁程序的要求 356
开发过程 357
建立稳定的版本 361
公共合同的演变 362
一个实际例子 364
Git 分支是有害的 368
简单性与复杂性的对比 369
更改延迟 369
学习曲线 369
出故障的成本 369
前期协调 369
可扩展性 370
惊奇和期望 370
参与的经济学 370
在冲突中的强壮性 370
隔离的保证 370
能见度 371
结论 371
为创新而设计 371
双桥传说 371
φMQ 的路线图是如何失去的 372
垃圾桶化的设计 374
复杂化的设计 376
简约化的设计 377
职业倦怠 379
成功模式 380
懒惰的完美主义者 381
仁慈暴君 381
天和地 381
门户开放 381
大笑的小丑 382
留心的将军 382
社会工程师 382
不朽的园丁 382
滚石 382
海盗帮 383
快闪族 383
加那利看守 383
执行绞刑的刽子手 383
历史学家 383
煽动者 384
神秘人 384
第7章 使用φMQ 的高级架构 385
用于弹性设计的面向消息模式 386
第1步:内部化的语义 387
第2步:描绘一个粗略的架构 387
第3步:决定合同 388
第4步:编写一个最小的端到端解决方案 388
第5步:解决一个问题,然后重复 389
Unprotocol 389
合同是艰难的 390
如何编写Unprotocol 391
为什么使用GPLv3 的公开规范 392
使用ABNF 393
廉价或讨厌的模式 393
序列化数据 395
φMQ 组帧 396
序列化语言 396
序列化库 397
手写的二进制序列化 399
代码生成 400
传输文件 406
状态机 417
使用SASL 认证 424
大型文件发布:FileMQ 426
为什么要制作FileMQ 426
最初的设计切片:API 426
最初的设计切片:协议 427
构建和尝试FileMQ 429
内部架构 430
公共API 431
设计说明 432
配置 433
文件稳定性 434
递交通知 434
符号链接 435
恢复和后期加入者 435
测试用例:曲目工具 437
得到一个官方端口号 439
第8章 分布式计算的框架 441
用于现实世界的设计 442
无线网络的秘密生活 443
为什么网状网络现在还没出现 444
一些物理知识 445
现状是什么 446
结论 448
发现 448
通过原始套接字先发制人的发现 448
使用UDP 广播协同发现 450
一台设备上的多个节点 455
设计API 456
关于UDP 的更多内容 465
分拆一个库项目 466
点对点消息传递 467
UDP 信标帧 467
真正的对等连接(和谐模式) 469
检测失踪 471
群发消息 472
测试与模拟 474
使用断言 474
前期测试 475
Zyre 测试仪 476
测试结果 479
跟踪活动 481
处理阻塞节点 481
分布式日志记录和监视 484
一个合理的最小实现 485
协议断言 488
二进制日志记录协议 489
内容分发 490
编写Unprotocol 493
结论 494
第9章 后记 497
番外篇 497
Rob Gagnon 的故事 497
Tom van Leeuwen 的故事 497
Michael Jakl 的故事 498
Vadim Shalts 的故事 498
本书是如何诞生的 499
消除摩擦 500
许可 502
索引 503
· · · · · · (收起)
读后感
当时买的时候,看了一下英文原版的价格,确实挺贵的,但是买了后,放家里没事的时候看看,确实还是不错的。 对于消息中间件,或许目前自己项目场景更多是靠ActionMQ以及MetaQ,但是这并不妨碍我或者同事去了解。
很大一部分是这里的的翻译 http://zguide.zeromq.org/page:all 个人感觉中文翻译太生硬,看着好累,有些机器翻译的味道。字里行间可以看出译者应该是没有深厚的ZeroMQ实践经验,只是照搬网文,语句之间跳转突然,不够流畅。鉴于中文版的资料太少,勉强收下。
很大一部分是这里的的翻译 http://zguide.zeromq.org/page:all 个人感觉中文翻译太生硬,看着好累,有些机器翻译的味道。字里行间可以看出译者应该是没有深厚的ZeroMQ实践经验,只是照搬网文,语句之间跳转突然,不够流畅。鉴于中文版的资料太少,勉强收下。
很大一部分是这里的的翻译 http://zguide.zeromq.org/page:all 个人感觉中文翻译太生硬,看着好累,有些机器翻译的味道。字里行间可以看出译者应该是没有深厚的ZeroMQ实践经验,只是照搬网文,语句之间跳转突然,不够流畅。鉴于中文版的资料太少,勉强收下。
简明扼要得说吧,我这是在评ZeroMQ,不是在评这本书,这本书没什么好评价的,ZeroMQ的权威资料很少,出来官网的Guide之外就是这本动物园出版的书了,你稍微用心读一下官网的前言就知道,这书的作者就是ZeroMQ的设计师了。 然后,轮到评价该书本身的价值了,该书本身的价值在于...
用户评价
我必须承认,《彼岸的低语》这本书的想象力简直是突破天际的,它彻底颠覆了我对传统科幻设定的认知。作者构建了一个宏大而又精细的平行宇宙体系,那种对社会结构、技术伦理乃至生命定义本身的探讨,深度和广度都令人咋舌。书中的“熵减城市”概念,简直是天才之作,它巧妙地将物理学的基本定律与社会学管理学结合起来,衍生出了一系列引人深思的社会现象和权力结构。最让我震撼的是,它并没有止步于炫酷的设定,而是将焦点放在了这些高概念背后的“人”——那些生活在规则之下,试图寻找自由意志的个体。人物之间的情感张力处理得极其细腻,即便是面对星际尺度的危机,他们之间的猜忌、爱恋和背叛依然如涓涓细流般,渗透在宏大的叙事背景之下,使得整部作品既有史诗般的磅礴,又不失人性的温度。阅读体验是极其沉浸的,我感觉自己就像被一艘星际飞船带着,穿越了无数光年,目睹了文明的兴衰更迭,那种时空错乱的眩晕感至今未消。
如果用一个词来形容《群星的残响》,那一定是“震撼”。这本书远超出了我对于历史小说或战争文学的期待。它聚焦于一次假设性的、但基于扎实历史考据的“如果”场景,探讨了技术进步与集体记忆之间的复杂关系。作者在处理大场面时,那种对战争机器的冰冷、精准的描绘,与他对个体士兵内心深处恐惧和战友情谊的捕捉形成了强烈的对比,让作品充满了张力。我尤其佩服作者在构建那个“异化时代”时的细节处理,无论是当时报纸的措辞、宣传口号的风格,还是民间流传的谣言,都考究得如同真实发生过一般,具有极强的代入感。它不仅仅是在讲述一个故事,更像是在重构一段被遗忘或被扭曲的历史,迫使读者去审视“正义”和“胜利”背后的真正代价。读完后,我感觉自己的历史观被重新校准了一遍,它带来的思考重量,远超于故事本身带来的阅读快感,是一部需要带着敬畏之心去阅读的重量级作品。
这部名为《锈蚀的密钥》的侦探小说,完全是教科书级别的布局和节奏掌控。它没有那种夸张的、好莱坞式的追逐场面,而是将焦点完全放在了缜密的逻辑推演和心理博弈之上。案件本身极其复杂,牵涉的线索如同无数条缠绕的毛线,但作者高明之处在于,他总能在最关键的时刻,通过一个不起眼的细节,为读者和主角提供一个观察问题的全新角度。我对主角那位饱经风霜的老探长尤其欣赏,他身上的那种“颓废的智慧”极具魅力,他不再依赖年轻时的冲动和蛮力,而是用一种近乎禅意的沉静去观察人性中的幽暗角落。每一次真相的揭露,都伴随着对社会阴暗面的深刻剖析,让你不禁思考,那些被法律掩盖的,是否才是更深层次的“罪孽”。叙事结构上,作者娴熟地运用了非线性叙事,将过去与现在交织在一起,每一次闪回都精准地填补了当前谜团的一个小缺口,读起来酣畅淋漓,如同解开一个极其精巧的瑞士机械表。
这本名为《零点前夜》的书籍,着实让我经历了一场精神上的马拉松。作者的叙事手法如同迷雾中的灯塔,时而清晰,时而又将你抛入更深的晦暗。故事的核心似乎围绕着一种对“完美”的偏执追求,主角那种近乎病态的自我要求,让人在阅读过程中既感到压抑,又不得不为他那近乎偏执的坚韧所折服。书中对时间流逝的描绘尤为精妙,那些细微到可以嗅到尘埃气味的场景描摹,让人仿佛真的身处那个特定的历史瞬间。我印象最深的是对人物内心独白的刻画,那些跳跃的、破碎的思绪,真实得让人心颤,仿佛作者直接将手术刀伸进了角色的灵魂深处,毫不留情地展示了人性的脆弱与复杂。书中的哲学思辨也相当深刻,它探讨了选择的重量,以及每一个岔路口背后所掩埋的无数个“可能的人生”,读完后,我久久不能平静,感觉自己对日常生活的选择都多了一层审视和敬畏。整体而言,这不是一本能让你轻松度过一个下午的作品,它要求你全神贯注,甚至需要反复回味那些看似不经意的对话和场景,因为它就像一幅层次极其丰富的油画,初看惊艳,细品方知其妙。
读完《潮汐信笺》,我仿佛刚从一场持续了整个夏天的、湿润而略带咸味的梦中醒来。这本书的风格极其抒情,语言的运用达到了诗歌的境界,每一个句子都像是被精心打磨过的鹅卵石,光滑、圆润,却又暗藏着岁月的痕迹。它讲述的并非什么惊天动地的大事,而是一段跨越了数十年、关于爱与错过的朦胧往事。故事的背景设定在一个虚构的、常年被大雾笼罩的海滨小镇,那种环境本身就成为了角色情感的延伸——模糊、易逝、充满不确定性。作者对于“沉默”的捕捉能力令人惊叹,很多重要的情感转折,都不是通过激烈的对话完成的,而是通过一个眼神的停留,一次未送出的信件,或是一段重复的旋律来实现的。这让我想起许多我们生命中那些无声胜有声的瞬间,那些未曾说出口的,往往比大声宣之于众的更具力量。对于喜欢氛围感和细腻情感描摹的读者来说,这本书无疑是一场温柔的洗礼,它不会让你感到紧张,只会让你沉浸在一种温暖而又略带伤感的怀旧情绪中。
翻译一坨屎
可靠性的实现还是比较复杂
书很好,翻译的有些生涩。只是翻了一遍,有时间要仔细看看。
垃圾翻译,直接看guide去了。
翻译一般