ZeroMQ指南-前言 標簽: 0mqzeromqzeroMQZeroMQZMQzmq 2013-02-17 22:58 3453人閱讀
?MQ指南 C/C++版
作者 Pieter Hintjens,iMatix公司執行總裁(CEO)
熾火譯,于2013
所有評論和勘誤表,請使用問題跟蹤器。這個版本覆蓋最新穩定版?MQ(3.2)。如果您使用的是老版本的?MQ那么一些例子和解釋是不準確的。
本指南原本使用C語言,但也使用PHP,Python,Lua和Haxe。我們也翻譯大部分的例子為C++,C#,CL,Delphi,Erlang,F#,Felix,Haskell,Java,Objective-C,Ruby,Ada,Basic,Clojure,Go,Haxe,Node.js,ooc,Perl和Scala。
前言
?MQ百詞簡介
?MQ(也叫ZeroMQ,0MQ,zmq)看起來像是一個可嵌入的網絡庫,但實際上像一個并發框架。它提供的攜載原子消息的套接字跨越各種傳輸:進程內、進程間、TCP、多播。你還可以使用諸如扇出(fanout),發布訂閱,任務分發和請求應答等模式來建立多對多的套接字連接。其速度之快足以構造集群。其異步I/O模型給予你可伸縮多核程序,用于異步消息處理的任務。它有多種語言的API且運行于大部分操作系統。?MQ來自iMatix是LGPLv3開放源代碼。
起源
我們拿來一個普通TCP套接字,在其中注入從秘密蘇維埃原子研究項目中偷取的放射性同位素混合物,用1950年代的宇宙射線轟擊,并將它交給一個吸毒成癮的漫畫書作者,他有嚴重喬裝的戀物癖,隆起的肌肉穿著彈性纖維。是的,?MQ套接字是拯救網絡世界的超級英雄。
圖1 - 一場可怕的事故...

零的禪意
?MQ中的?完全是一個權衡。一方面,這個奇怪的名字降低了?MQ在Google和Twitter上的可見度。另一方面,它惹惱了一些丹麥人,他們寫道“?MG r?tfl”,還有“?不是一個滑稽模樣的零!”還有“R?dgr?d med Fl?de!”,這明顯是一句臟話,意思是“愿你的鄰居是格倫德爾(一種神話中的怪獸)的直屬后裔!”看起來是個公平交易。
起初?MQ中的零表示“零中介”還有“零延遲”(盡可能接近)。與此同時,它們覆蓋了不同的目標:零管理、零消耗、零浪費。一般來說,“零”指的是滲透到項目中的極簡主義文化。我們通過移除復雜度而不是披露新功能來增加力量。
讀者
這本書是為了專業程序員而寫,他們想學習如何制作將主導計算前景的大規模分布式軟件。我們假定你能讀懂C代碼,因為大多數示例是C語言的,雖然?MQ已用于很多種語言。我們假定你關心規模,因為?MQ比他人更好的解決了此問題。我們假定你需要低投入高產出,因為否則你不會欣賞?MQ的權衡取舍。除了這些基本背景,我們設法帶給你使用?MQ所需要的網絡和分布式計算的全部概念。
鳴謝
感謝Andy Oram讓O'Reilly書得以產生,并編輯這份文本。
感謝以下人員的貢獻:Bill Desmarais, BrianDorsey, Daniel Lin, Eric Desgranges, Gonzalo Diethelm, Guido Goldstein, HunterFord, Kamil Shakirov, Martin Sustrik, Mike Castleman, Naveen Chawla, NicolaPeduzzi, Oliver Smith, Olivier Chamoux, Peter Alexander, Pierre Rouleau, RandyDryburgh, John Unwin, Alex Thomas, Mihail Minkov, Jeremy Avnet, MichaelCompton, Kamil Kisiel, Mark Kharitonov, Guillaume Aubert, Ian Barber, Mike Sheridan,Faruk Akgul, Oleg Sidorov, Lev Givon, Allister MacLeod, Alexander D'Archangel,Andreas Hoelzlwimmer, Han Holl, Robert G. Jakabosky, Felipe Cruz, MarcusMcCurdy, Mikhail Kulemin, Dr. Gerg? érdi, Pavel Zhukov, Alexander Else, GiovanniRuggiero, Rick "Technoweenie", Daniel Lundin, Dave Hoover, SimonJefford, Benjamin Peterson, Justin Case, Devon Weller, Richard Smith, AlexanderMorland, Wadim Grasza, Michael Jakl, Uwe Dauernheim, Sebastian Nowicki, SimoneDeponti, Aaron Raddon, Dan Colish, Markus Schirp, Benoit Larroque, JonathanPalardy, Isaiah Peng, Arkadiusz Orzechowski, Umut Aydin, Matthew Horsfall,Jeremy W. Sherman, Eric Pugh, Tyler Sellon, John E. Vincent, Pavel Mitin, MinRK, Igor Wiedler, Olof ?kesson, Patrick Lucas, Heow Goodman, SenthilPalanisami, John Gallagher, Tomas Roos, Stephen McQuay, Erik Allik, ArnaudCogoluègnes, Rob Gagnon, Dan Williams, Edward Smith, James Tucker, KristianKristensen, Vadim Shalts, Martin Trojer, Tom van Leeuwen, Hiten Pandya, HarmAarts, Marc Harter, Iskren Ivov Chernev, Jay Han, Sonia Hamilton, NathanStocks, Naveen Palli, and Zed Shaw。

浙公網安備 33010602011771號