摘要:
ZeroMQ是一个很有个性的项目,它原来是定位为“史上最快消息队列”,所以名字里面有“MQ”两个字母,但是后来逐渐演变发展,慢慢淡化了消息队列的身影,改称为消息内核,或者消息层了。从网络通信的角度看,它处于会话层之上,应用层之下,有了它,你甚至不需要自己写一行的socket函数调用就能完成复杂的网络通信工作。借用官方的例子:客户端(发送N个“Hello”消息到服务端,接受回应):12345678910111213141516171819202122232425262728293031323334353637// // Hello World client // Connects REQ soc 阅读全文
摘要:
貌似有2个月没写技术帖了(政治帖倒是写了不少)。今天,向各位程序猿同学介绍一个和网络通讯有关的开源项目——ZeroMQ(绰号 ØMQ,以下简称 ZMQ)。事先声明,本帖仅仅是简介,不涉及太深入的话题。★ZMQ是啥玩意儿? 通俗地说,ZMQ是一个开源的、跨语言的、非常简洁的、非常高性能、非常灵活的网络通讯库。 它的官方网站在"这里",维基百科的介绍在"这里"(暂时没有中文的维基词条)。 这玩意儿推出的时间不长,貌似09年下半年才推出1.0.1版本。俺去年开始接触它,感觉实在不错,今年就已经用于公司的产品中。最近一段时间,对 ZMQ 的好评日渐增多 阅读全文
摘要:
在需要并行化处理数据的时候,采用消息队列通讯的方式来协作,比采用共享状态的方式要好的多。Erlang ,Go 都使用这一手段来让并行任务之间协同工作。最近读完了 ZeroMQ 的 Guide。写的很不错。前几年一直有做类似的工作,但是自己总结的不好。而 ZeroMQ 把消息通讯方面的模式总结的很不错。ZeroMQ 并不是一个对 socket 的封装,不能用它去实现已有的网络协议。它有自己的模式,不同于更底层的点对点通讯模式。它有比 tcp 协议更高一级的协议。(当然 ZeroMQ 不一定基于 TCP 协议,它也可以用于进程间和进程内通讯。)它改变了通讯都基于一对一的连接这个假设。ZeroMQ 阅读全文