zeroMQ和nanoMSG的对比

zeromq和nanomsg是两种消息队列库,zeromq由C++编写,但存在线程模型问题,不完全符合POSIX标准,且WindowsIOCP不支持触发方式。相比之下,nanomsg用C语言编写,更成熟,支持路由优先级和条件触发的IOCP。此外,nanomsg实现了真正的零拷贝传输,具有更高效的DNS查询和更优的订阅匹配算法。
摘要由CSDN通过智能技术生成

zeromq vs nanomsg

zeromq是作者用cpp早期创作,作者承认存在一些明显问题;nanomsg则是用C写的,更为成熟
参考官方链接

  • POSIX: zeromq 不完全遵守
  • threading model: zeromq中单个对象由唯一一个线程管理,当使用用户线程管理该对象时有一些问题
  • IOCP: zeromq的windows IOCP不支持
  • 触发方式: zeromq的socket在外部轮询时是边缘触发(edge),而nanomsg是条件触发(level)
  • routing priorities: nanomsg有routing priorities
  • DNS query: zeromq的DNS query是同步的,DNS无法获取时会导致整个库hung
  • zero-copy: zeromq在传入内核后会按照tcp方式进行拷贝;而nanomsg则有RDMA/shmem实现真正的零拷贝
  • 订阅匹配: zeromq中是simple trie; nanomsg是Patricia trie,后者内存使用率更高
    • simple trie每个节点是单个字符;而Patricia则是字符串,将可共享的字符串合并为同一个节点
  • Unified Buffer Model: nanomsg统一使用tcp的buffer, 而zeromq有一个mq+tcp buffers
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值