zeromq,史上最快的消息队列 - zmq的学习和研究

zeromq,史上最快的消息队列 - zmq的学习和研究

ID:15251329

大小:42.00 KB

页数:31页

时间:2018-08-02

zeromq,史上最快的消息队列 - zmq的学习和研究_第1页
zeromq,史上最快的消息队列 - zmq的学习和研究_第2页
zeromq,史上最快的消息队列 - zmq的学习和研究_第3页
zeromq,史上最快的消息队列 - zmq的学习和研究_第4页
zeromq,史上最快的消息队列 - zmq的学习和研究_第5页
资源描述:

《zeromq,史上最快的消息队列 - zmq的学习和研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ZeroMQ,史上最快的消息队列-ZMQ的学习和研究您的评价:收藏该经验ZeroMQ,史上最快的消息队列—–ZMQ的学习和研究一、ZeroMQ的背景介绍引用官方的说法:“ZMQ(以下ZeroMQ简称ZMQ)是一个简单好用的传输层,像框架一样的一个socketlibrary,他使得Socket编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。ZMQ的明确目标是“成为标准网络协议栈的一部分,之后进入Linux内核”。现在还未看到它们的成功。但是,它无疑是极具前景的、并且是人们更加需要的“传统”BSD套接字之上的一层

2、封装。ZMQ让编写高性能网络应用程序极为简单和有趣。”近几年有关”Message31Queue”的项目层出不穷,知名的就有十几种,这主要是因为后摩尔定律时代,分布式处理逐渐成为主流,业界需要一套标准来解决分布式计算环境中节点之间的消息通信。几年的竞争下来,Apache基金会旗下的符合AMQP/1.0标准的RabbitMQ已经得到了广泛的认可,成为领先的MQ项目。与RabbitMQ相比,ZMQ并不像是一个传统意义上的消息队列服务器,事实上,它也根本不是一个服务器,它更像是一个底层的网络通讯库,在SocketAPI之上做了一层封装,将网络通讯、进程通讯和线

3、程通讯抽象为统一的API接口。二、ZMQ是什么?阅读了ZMQ的Guide文档后,我的理解是,这是个类似于Socket的一系列接口,他跟Socket的区别是:普通的socket是端到端的(1:1的关系),而ZMQ却是可以N:M31的关系,人们对BSD套接字的了解较多的是点对点的连接,点对点连接需要显式地建立连接、销毁连接、选择协议(TCP/UDP)和处理错误等,而ZMQ屏蔽了这些细节,让你的网络编程更为简单。ZMQ用于node与node间的通信,node可以是主机或者是进程。三、本文的目的在集群对外提供服务的过程中,我们有很多的配置,需要根据需要随时更新

4、,那么这个信息如果推动到各个节点?并且保证信息的一致性和可靠性?本文在介绍ZMQ基本理论的基础上,试图使用ZMQ实现一个配置分发中心。从一个节点,将信息无误的分发到各个服务器节点上,并保证信息正确性和一致性。四、ZMQ的三个基本模型ZMQ提供了三个基本的通信模型,分别是“Request-Reply“,”Publisher-Subscriber“,”ParallelPipeline”,我们从这三种模式一窥ZMQ的究竟ZMQ的helloworld!由Client发起请求,并等待Server回应请求。请求端发送一个简单的hello,服务端则回应一个world

5、。请求端和服务端都可以是1:N的模型。通常把1认为是Server,N认为是Client。ZMQ可以很好的支持路由功能(实现路由功能的组件叫作Device),把1:N扩展为N:M(只需要加入若干路由节点)。如图1所示:图1:ZMQ的Request-Reply通信服务端的php程序如下:01?php02/*03*HelloWorldserver04*BindsREPsockettotcp://*:555505*Expects“Hello”fromclient,replieswith“World”06*@authorIanBarber31ian(dot)ba

6、rber(at)gmail(dot)com07*/08$context=newZMQContext(1);09//Sockettotalktoclients10$responder=newZMQSocket($context,ZMQ::SOCKET_REP);11$responder->bind(“tcp://*:5555”);12while(true){13//Waitfornextrequestfromclient14$request=$responder->recv();15printf(“Receivedrequest:[%s]”,$req

7、uest);1617//Dosome‘work’18sleep(1);1920//Sendreplybacktoclient21$responder->send(“World”);22}Client31程序如下:01?php0203/*0405 * HelloWorldclient0607 * ConnectsREQsockettotcp://localhost:55550809 * Sends“Hello”toserver,expects“World”back1011 *@authorIanBarberian(dot)barber(at)gmail(

8、dot)com1213 */14$context=newZMQContext();1516//

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。