ZeroMQ:云计算时代最好的通讯库

还在学socket编程吗?还在研究为什么epoll比select更好吗?

噢,不必了!

在复杂的云计算环境中,我们面临的难题远比这个复杂得多。

庞大的服务器集群作为计算云,对来来看或许只是一个简单的搜索框;而在云的内部,复杂的互联和海量的通讯,加之不稳定的网络环境,廉价服务器的低可用性——构建一个高可用性且具备伸缩能力的云计算的环境,不是那么容易的!

为什么说ZeroMQ是云计算时代最好的通讯库呢?我们从ZeroMQ的特性来分析吧:

1.The socket library that acts as a concurrency framework.

开起来像是并行开发框架的socket库。

为什么一个通讯的库不提供socket的风格,反而看起来像是一个并行的库?

云计算不就是分布式计算嘛!

并行、多核、分布式,让计算能力不断的被扩展扩展,让数据不断地被分区分区,强大的计算能力就是这样堆出来的。

并发是目前云计算这个世界的主题,所以ZMQ提供了一个并发的库,正式我们最最需要的。

如同广告所讲:客户要的不是一英寸的钻头,而是一英寸的洞。

我们要的不是通讯,而是分布式并行计算。

2. Carries messages across inproc, IPC, TCP, and multicast.

提供进程内、进程间、机器间和广播方式的消息通讯。

可以说ZMQ提供了一种强大的复杂环境适应能力。

作为一个通讯库,可能我们觉得进程内通讯和进程间通讯不是重要的。

然而,提供这些功能,使得ZMQ能够在特定的场景下提供特定的解决方案。且通讯的配置相当的简单:inproc://, ipc://, tcp://这三个通讯方案简单地在字符串中指定即可。开发者可以很容易开发出可运维的应用程序,在不同的场景下,可以仅修改配置文件来适应复杂的部署环境。

3.Connect N-to-N via fanout, pubsub, pipeline, request-reply.

在多对多的网络环境中提供多对一,发布/订阅(one-to-many),管道(one-to-one),请求/响应等模型。

模式,还是模式。

(对于fanout这个词,我没完全理解,我觉得在网络通讯中,应该就是多对一这样的场景)

天天做网络的开发的人,可能会觉得通讯就那么三板斧,经典的模式不断在重复,可是我们仍然在具体的问题上反复写着类似的代码。

而ZMQ提供的不仅仅是这个:ZMQ就像一堆水管的转接头,在复杂的自来水供水系统中,ZMQ在每个关节灵活地适配,像水管一样接起来,把数据分开或是合并。

例如,先把数据按照pub/sub模式分发给多个服务器,每个服务器上的进程在进程内用inproc,将请求分布到多个线程上处理,如果有特别的需要,还可以把数据用ipc方式转发给同一机器上的其他进程。而完成这一切复杂的工作仅需要少少的代码。

4. Fast enough for clustered products and supercomputing.

对服务器群集和超级计算来将都足够快了

超级计算都能做,你还想干啥?

5. Asynch I/O for scalable multicore message-passing apps.

对可扩展的多核消息传递应用程序提供异步I/O支持。

在ZMQ的inproc://模式中,库提供了线程安全的消息分发机制,可以简单地把请求分发给多线程处理。

6. Large and active open source community.

拥有超大并且活跃的开源社区

记住,你不是一个人在战斗!不是……

7. 20+ languages including C, C++, Java, .NET, Python.

有超过20种以上的开发语言绑定,诸如C, C++, Java, .NET, Python

8. Most OSes including Linux, Windows, OS X.

还支持绝大多数的操作系统,例如Linux, Windows, OS X

9. LGPL free software with full commercial support.

这是最重要的,不要钱,但也可以提供商业支持。

注:

Fan out:数电里很重要的概念,“一逻辑门的输出需要驱动多个等效门的输入,称输出端接的需要驱动的等效门数为扇出F”。

扇出(fan-out)是定义单个逻辑门能够驱动的数字信号最大输入量的术语。

from:http://hi.baidu.com/ah%5F%5Ffu/blog/item/fd73593ebb3dd6e8828b13a3.html

http://www.cnblogs.com/dkblog/archive/2011/05/12/2044095.html

时间: 2024-11-09 15:24:40

ZeroMQ:云计算时代最好的通讯库的相关文章

高性能的通讯库-zeroMQ的几个高性能特征

这两天研究了一下zeroMQ,号称史上最好的通讯库,比rabbitMQ快很多,基于c语言开发的,实时流处理sorm的task之间的通信就是用的zeroMQ. zeroMQ在使用模式上支持多种,有req-reply,publish-subscribe,pipe. 下图是zeroMQ的架构图 简单说明一下, 从上到下依次是网络.zeroMQ.用户的应用,相当于在应用层和网络层加了一个消息通信库这么一个层次 应用层通过API使用socket(此socket不同于传统意义上的socket)和zeroMQ

在云计算时代,如何监控云服务的 SLA ?

当今已处于云计算时代,什么都云化了,从文件存储到视频转换,从服务器托管到后端接口,甚至于特定的应用逻辑,比如 IM 服务.好友关系服务等等,很多东西云厂商都帮我们做好了! 因而监控这个主题也貌似渐渐地谈得少了! 甚至于运维人员的需求也在逐渐变少了! 那我们就可以一劳永逸了吗? 不需要我们了解服务器和系统了? 不需要我们部署监控系统和服务了? 我们只需要写好代码发布就可以睡大觉了? No! 虽然云服务器厂商帮我们打理了一切的基础设施,但是 IaaS 厂商给我们的还只是一个个全裸的系统! 虽然 Pa

高手问答精选:Go 语言 —— 云计算时代的 C 语言(类似于一个FAQ)

Go 语言被称为云计算时代的 C 语言,它在软件开发效率和运行效率之间做出了绝佳的权衡.这使得它既适应于互联网应用的极速开发,又能在高并发.高性能的开发场景中如鱼得水.正因如此,许多互联网公司,尤其是云计算领域的创业公司都选择 Go 语言作为其技术栈的重要组成部分.因此,对于广大的开发者而言,关注和学习 Go 语言就十分有必要了. 在高手问答第 149 期中,我们围绕 Go 进行了提问,并邀请了 @hyper0x(郝林)作为高手嘉宾. 本文整理了此次高手问答中一些精彩的问答. Go 语言使用场景

云计算时代应用设计十二要素

云计算时代应用设计十二要素 在云计算时代.应用的整个生命周期将在数据中心里度过.这跟传统软件模式极大不同. 云应用实际上意味着:代码 + 配置 + 执行时环境. 什么样的软件才是可用性和可维护性好的软件? 什么样的代码才干避免兴许开发的上手障碍? 什么样的实施才干可靠的执行在分布式的环境中? Heroku (一家 PaaS 服务提供者.2010 年被 Salesforce 收购)平台创始人 Adam Winggins 提出了推荐的应用十二风格,对我们设计和实现云时代(特别是 PaaS 和 Saa

pcommlite串口通讯库使用

MFC下串口编程使用最多的两种方法是读取注册表和使用mscomm组件,都有着或多或少的缺陷,调用系统SDK比较麻烦,而MSCOMm组件最多支持16个串口,串口号大于16的时候无法打开,遇到这种情况,可以使用一个名为pcommlite的串口通讯库,下载安装之后,解压出来的文件包括 根据编译的平台选择相应的lib文件加入工程,并加入pcomm.h文件 寻找系统串口,sio_open()打开串口 sio_close()关闭串口 BYTE i = 0; CString str; // TODO: 在此添

回归A股的神州数码集团,要在云计算时代重建IT生态

(上图为神州数码集团股份有限公司董事长郭为) 4月25日,神州数码集团(000034.SZ)宣布成功登陆A股,并将打造中国最大的IT新生态.2015年8月,神州控股(00861.HK)宣布将分销和系统业务有条件出售给国内A股上市公司深信泰丰(000034.SZ),2016年4月25日,深信泰丰A股上市公司名称正式更名为神州数码集团股份有限公司,证券简称正式更名为神州数码,神州数码集团正式成功登陆A股. 神州数码集团股份有限公司董事长郭为表示:在国内A股上市是神州数码发展战略的关键点,通过A股上市

云计算时代——本质、技术、创新、战略

云计算时代——本质.技术.创新.战略(一线云计算布道师历时6年力作,透析云计算本质.简述云计算关键技术.分析主要云服务架构.解剖云计算巨头策略,既有广度又有深度,云计算2.0时代必备) 刘黎明 王昭顺 著   ISBN 978-7-121-23187-2 2014年6月出版 定价:59.00元 320页 16开 编辑推荐 <云计算时代——本质.技术.创新.战略>看点: 1.凝结了作者6年多的国际云计算发展一线工作经验,隐含中国和全球的云计算发展的真实脉络. 2.以全面的视角和深入的细节介绍了云

联合巨头做庄开源,英特尔在云计算时代再造DIY模式

2016年3月底,英特尔在全球盛大发布了新一代服务器至强处理器系列E5-2600 v4(简称:E5 v4).相比于两年前发布的上一代E5  v3强调软件定义数据中心基础设施(SDI)来说,新一代的E5 v4强化了对云计算环境的全面支持,英特尔说这是要加速"Cloud for All". 值得一提的是,在美国E5 v4的发布会现场,英特尔请来了代表开源软件社区的Docker公司CoreOS和OpenStack公司Mirantis的CEO站台,在中国则请来了百度.阿里和中移动三大家的代表站

[读书笔记]云计算时代的网络,读《腾云,云计算和大数据时代网络技术揭秘》

这本书一共分四个部分.第一部分介绍了云计算以及云计算对网络的要求. 第二部分从数据中心外部的视角介绍了云计算相关网络技术,主要从安全性.可靠性.灵活性等角度出发介绍了准入.网络加密(VPN)两种安全技术,流量标签的QoS网络质量保证技术,DNS重定向.健康路由注入以及LISP位置身份分离等网络灵活性技术(保证资源可以跨中心迁移后仍然可以被访问). 第三部分从数据中心内部的视角介绍了云计算相关网络技术,主要包括TRILL.SPB等适应虚拟化的数据中心网络扩展技术.FCoE以太网传输存储流量.支持虚