gpt4 book ai didi

zeromq - NetMQ 与 clrzmq

转载 作者:行者123 更新时间:2023-12-02 05:45:26 28 4
gpt4 key购买 nike

几个月前,我选择使用 .NET 库来实现 ZeroMQ 通信,但我对 zeromq.org 中建议的库很少这一事实感到非常困惑。 .

同时我学到了一些东西,所以我会在这里分享。有人可能会发现这很有帮助。所以让我问自己:

NetMQ 和 clrzmq 有什么区别?

(虽然我自己会回答这个问题,但如果其他人对此主题有一些经验 - 欢迎其他答案!)

最佳答案

两者之间的主要区别在于方法:

  • CLRZMQ 是绑定(bind)项目,它实际上在后台使用 libzmq 库(它是 libzmq 库的 .NET 包装器);
  • NetMQ 是 ZeroMQ 的 .NET 原生端口,这意味着它不会包装现有的 libzmq,而是用纯 C# 重写它。

使用哪一个?嗯,没有简单的答案。选择时要记住以下一些重要事项:

  • 在可移植性方面 - NetMQ 迄今为止胜出,特别是因为 NetMQ 具有 .NET Core 版本。使用 NetMQ 部署也更容易 - 无需担心 native 库(x64/x86 等)。
  • 另一方面,NetMQ 实际上重写了所有内容,这一事实对我来说有点可怕 - 始终存在某些内容未准确反射(reflect)原始代码的风险,并且可能会导致与其他 ZeroMQ 节点不兼容。还有一个问题是 NetMQ 实现原始库中的新功能的速度有多快。
  • 表演。目前我不知道哪个库在性能上胜出,但这绝对是选择时要考虑的事情。 libzmq 应该比任何托管代码都要快得多,但是在 CLRZMQ 和 libzmq 之间的通信中必须进行编码,所以我真的无法预测哪个库会在速度上获胜.

更新:NetMQ 的另一个重要优势是支持 - 您将在一两天内得到答案,有时甚至在几小时内得到答案。

更新 2:在我的例子中,NetMQ 中轮询器实现的问题(描述为 here )结果证明是 NetMQ 的显示停止问题。由于这个问题,我已将我的项目迁移到 CLRZMQ(我可能会改变主意......)不过,谈到轮询器,您应该注意 CLRZMQ 文档中的一个问题,它被描述为 here

关于zeromq - NetMQ 与 clrzmq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38682886/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com