ZeroMQ的学习和研究

http://zeromq.org/distro:centos
http://zeromq.org/bindings:java

zeromq 安装 http://youzifei.iteye.com/blog/1698237
centos安装zeromq, jzmq http://www.cnblogs.com/literoad/archive/2013/03/15/2961035.html

ZeroMQ的学习和研究 http://www.searchtb.com/2012/08/zeromq-primer.html
JZMQ(ZeroMQ for Java binding)尝试 http://blog.hongtium.com/zeromq-for-java-binding/
Java 使用ZeroMQ 2.2 进行通信编程 http://www.cnblogs.com/sigh-differ/archive/2012/11/12/zmq-first-blood.html
用java调用zeromq http://kisseveryone.iteye.com/blog/1728187
ZeroMQ 初学 Java Binding验证代码 http://www.coderli.com/zeromq-jzmq-javabind-demo
ZeroMQ--使用jzmq进行编程 http://my.oschina.net/cloudcoder/blog/200989



一、ZeroMQ的背景介绍
引用官方的说法: “ZMQ(以下ZeroMQ简称ZMQ)是一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。ZMQ的明确目标是“成为标准网络协议栈的一部分,之后进入Linux内核”。现在还未看到它们的成功。但是,它无疑是极具前景的、并且是人们更加需要的“传统”BSD套接字之上的一 层封装。ZMQ让编写高性能网络应用程序极为简单和有趣。”

近几年有关”Message Queue”的项目层出不穷,知名的就有十几种,这主要是因为后摩尔定律时代,分布式处理逐渐成为主流,业界需要一套标准来解决分布式计算环境中节点之间的消息通信。几年的竞争下来,Apache基金会旗下的符合AMQP/1.0标准的RabbitMQ已经得到了广泛的认可,成为领先的MQ项目。

与RabbitMQ相比,ZMQ并不像是一个传统意义上的消息队列服务器,事实上,它也根本不是一个服务器,它更像是一个底层的网络通讯库,在Socket API之上做了一层封装,将网络通讯、进程通讯和线程通讯抽象为统一的API接口。

二、ZMQ是什么?
阅读了ZMQ的Guide文档后,我的理解是,这是个 类似于Socket的一系列接口,他跟Socket的区别是:普通的socket是端到端的(1:1的关系),而ZMQ却是可以N:M 的关系,人们对BSD套接字的了解较多的是点对点的连接,点对点连接需要显式地建立连接、销毁连接、选择协议(TCP/UDP)和处理错误等,而ZMQ屏蔽了这些细节,让你的网络编程更为简单。ZMQ用于node与node间的通信,node可以是主机或者是进程。

猜你喜欢

转载自panyongzheng.iteye.com/blog/2098048