• ZeroMQ指南前言 标签: 0mqzeromqzeroMQZeroMQZMQzmq 20130217 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。

  • 相关阅读:
    基于python的socket网络编程
    Python3报错:ModuleNotFoundError: No module named '_bz2'
    机器学习博客网站
    《Linux内核设计与实现》 读书笔记(4)--进程的调度
    k8s 简单入门
    docker 简单入门
    python3 教程
    .toml 文件简介
    编码规范
    python3 基本用法
  • 原文地址:https://www.cnblogs.com/zerofire/p/7162165.html
Copyright © 2020-2023  润新知