翻译自“http://zguide.zeromq.org/py:all”
ZeroMQ概述
ZeroMQ(也称ØMQ,0MQ,或者zmq)看起来像一个可嵌入的网络库,但行为像一个并发框架。它为各种传输协议,比如进程内部(in-process),进程之间(inter-process),TCP和多路广播(multicast),提供了携带原子消息的sockets。你可以使用fan-out,发布-订阅(pub-sub),任务分发(task distribution),和请求-响应(request-reply)模式连接N-N个sockets。作为集群产品的架构,它足够快。它的异步I/O模型提供了可扩展的多核应用程序,构建为异步消息处理任务。它有多种语言APIs,可以在大部分操作系统上运行。ZeroMQ来自iMatix,开源协议是LGPLv3。
起源
我们从一个机密的苏维埃原子研究项目中偷来放射性同位素的混合体,并注入在一个普通的TCP socket中,使用1950年的宇宙射线轰击它,并把它放在一个吸毒成瘾,有着严重恋物癖,氨纶纤维下包裹着隆起的肌肉的漫画作者手中。是的,ZeroMQ sockets是网络世界中拯救世界的超级英雄。
图1:一次可怕的事故
<div align=center>
</div>
Zero之禅
ZeroMQ中的Ø表示取舍。一方面,这个奇怪的名字降低了ZeroMQ在Google和Twitter中的能见度。另一方面,这惹恼了写一些诸如“ØMG røtfl”的丹麦人,并且“Ø不是一个有趣的零!”,这显然是一种侮辱,意思是“你的邻居可能是格伦德尔的直系后裔!”这似乎是一个公平的贸易。
最初,ZeroMQ中的零表示"零代理(zero broker)"和"零延迟(zero latency)"。从此以后,它包含了不同的目标:零管理,零成本,零浪费。更普遍来说,零表示极简主义文化贯穿项目。我们通过移除复杂性,而不是公开新功能来增强能力。
读者
这本书是写给专业程序员的,学习如何开发大规模分布式软件。我们假设你可以看懂C语言代码,尽管ZeroMQ可以使用多种语言,但这里的大部分示例是C语言的。我们假设你关心扩展性,因为ZeroMQ首要任务是解决这个问题。我们假设你需要最少的成本带来最好的结果,否则你不会重视ZeroMQ的取舍。除了基础知识,我们试图展示使用ZeroMQ时需要的所有网络和分布式计算的概念。
感谢
略