ZeroMQ的核心优势

ZMQ定义为“史上最快的消息队列”,从网络通信的角度看,它处于会话层之上,应用层之下。ZMQ相较于传统的socket网络编程,最大的特点和优势体现如下:

  • ZMQ为应用程序提供了一套简单的套接字API,不用考虑实际使用的协议类型(进程内、进程间、机器间、或广播);
  • ZMQ提供了多种模式进行消息路由,如请求-应答模式、发布-订阅模式等。这些模式可以用来搭建网络拓扑结构;
  • ZMQ是通过后台的I/O线程进行消息传输的。一个I/O线程已经足以处理多个套接字的数据传输要求;
  • ZMQ消息的读写都是异步的,无论是发送消息还是接收消息,ZMQ都会先将消息放入管道中,当Reactor轮询到相应的读写事件的时候,适时的读写消息,且所有的I/O操作都在后台进行;
  • ZMQ保证进程不会因为内存溢出而崩溃,因为ZMQ有阈值(HWM)机制,可以避免消息溢出。当队列已满,ZMQ会自动阻塞发送者,或丢弃部分消息,这些行为取决于你所使用的消息模式;
  • 当节点调动时,ZMQ会自动进行连接或重连,这就意味着你可以以任何顺序启动组件;用它创建的面向服务架构(SOA)中,服务端可以随意地加入或退出网络;
  • ZMQ会在有必要的情况下自动将消息放入队列中保存,一旦建立了连接就开始发送;
  • ZMQ使用消息帧的机制来传递整个消息,但不强制使用某种消息格式,消息的序列化/反序列化由应用层负责处理;
  • ZMQ会处理套接字异常,能够智能地处理网络错误,有时它会进行重试,有时会告知你某项操作发生了错误;


你可能感兴趣的:(Linux,精华文章)