欢迎各界计算机爱好者加入,弘扬极客精神!

zeromq和一般的网络库有什么区别?

0 喜欢 0 不喜欢

zeromq和一般的网络库有什么区别,比如libevent,muduo之类的网络库

最新提问 5月 20, 2016 分类:Linux | 用户: wyj557 (3,674 分)  

5 个回答

0 喜欢 0 不喜欢
 
已采纳

貌似这个问题,人气不高,其实我对zeromq很感兴趣,有段时间自己玩过,至于后面两个没有了解过。在这里说一下,这样可以把问题更新下,或许有更多人可以看到。

zeromq目标是想进入linux内核,主要作用在传输层。而且也发现越来越多的库,底层使用zeromq。

我玩的时候是基于nodejs的,简单的实现了几种常见形式的消息传递。

具体最好看官方文档。

至于libevent和muduo没有接触过,所以不发表任何意见。

可以参考https://segmentfault.com/q/1010000005142321/a-1020000005146456

最新回答 12月 7, 2016 用户: Re (2,796 分)  
采纳于 12月 7, 2016 用户:big and small
0 喜欢 0 不喜欢

首先不要拿它们在一起比较,因为用处不同;

1.zeromq,功能如其名,就是0消耗message queue,它主体实现了 消息队列的功能,重点在于消息接收发送上;

2.libevent,也是功能如其名,它实现了封装了事件机制实现了网络事件的功能,重点在于网络连接事件处理上;

3.muduo,C++11规格下的陈硕这个人写的C++高并发网络库,封装了很多C++特性,比较深奥,没有深入研究。

最新回答 5月 20, 2016 用户: 月汐 (6,140 分)  
0 喜欢 0 不喜欢

zeroMQ在设计上主要采用了以下几个高性能的特征:

1、无锁的队列模型

      对于跨线程间的交互(用户端和session)之间的数据交换通道pipe,采用无锁的队列算法CAS;在pipe的两端注册有异步事件,在读或者写消息到pipe的时,会自动触发读写事件。

2、批量处理的算法

     对于传统的消息处理,每个消息在发送和接收的时候,都需要系统的调用,这样对于大量的消息,系统的开销比较大,zeroMQ对于批量的消息,进行了适应性的优化,可以批量的接收和发送消息。

3、多核下的线程绑定,无须CPU切换

    区别于传统的多线程并发模式,信号量或者临界区, zeroMQ充分利用多核的优势,每个核绑定运行一个工作者线程,避免多线程之间的CPU切换开销。

最新回答 5月 22, 2016 用户: ABCDEFG (4,022 分)  
1 喜欢 0 不喜欢
http://www.lxway.com/131947.html

这里是czmq 的与其的区别
最新回答 6月 30, 2016 用户: junglely (4,306 分)  
0 喜欢 0 不喜欢

zeromq目标是想进入linux内核,主要作用在传输层。而且也发现越来越多的库,底层使用zeromq。

最新回答 12月 6, 2016 用户: big and small (4,616 分)  
...