带有 .NET 的 apache apollo mq

Posted

技术标签:

【中文标题】带有 .NET 的 apache apollo mq【英文标题】:apache apollo mq with .NET 【发布时间】:2013-01-08 11:17:45 【问题描述】:

我需要在我的 ASP.NET MVC 应用程序中使用队列。我正在寻找最快的实现,谷歌了一下,查看了一些基准,发现目前 Apache Apollo MQ 是跨消息队列最快的解决方案。

是否存在一些允许在 .NET 世界中使用 Apache ApolloMQ(发送和消费消息)的客户端库?


另外,如果您可以向我提供其他解决方案(不包括 0MQ)表现出更好性能的基准,请提供链接。

【问题讨论】:

【参考方案1】:

你看过DDS(数据分发服务实现吗?

查看例如来自 RTI 的 Connext DDS 或来自 PrismTech 的 Open Splice。大多数 DDS 实现可以提供一种持久队列(如果需要的话),与 ZeroMQ 一样快(或更快,取决于用例)。它们不是传统的 MQ:s,但如果您以良好的方式设置它们的 QoS,它们可能会以类似的方式工作。

一些 DDS 实现是免费提供的(功能有限),一些提供 C# 实现。更多供应商can be found here.

【讨论】:

嗯,有趣。以前从未听说过那种东西。或许你可以推荐一些关于这个主题的好文章? 我自己没有在任何项目中使用过它,尽管我在最近的一个项目中将它作为可能的消息传递/通信框架进行了研究。这实际上取决于您遇到的问题类型。例如,查看这些演示文稿:OpenSplice SlideShare 了解更多信息。很值得一看。采用不同的方法进行分布式通信。非常适合不同的网络类型、ad-hoc 网络和高性能。内置发现意味着您永远不会针对特定端点,而是专注于数据。【参考方案2】:

查看 Apollo 发行版中的“examples/stomp/csharp”目录,了解如何让 .NET 与 Apollo 对话的示例。顺便说一句,由于 apollo 支持多种不同协议、语言和平台的客户端,因此它通常不会在其发行版中包含客户端 API 库。

【讨论】:

【参考方案3】:

现在.NET 中似乎没有用于 apollomq 的官方客户端库。但是可以使用 STOMP 协议库Apache.NMS.Stomp

【讨论】:

因为 Apollo 实现了 STOMP、OpenWire、MQTT 和 AMQP 等开放协议,您可以使用任何支持相同的客户端。不需要 Apollo 特定的客户端库。 也许您可以简短地描述一下我或提供一些文章这些协议之间有什么区别以及性能需求的首选选择是什么?

以上是关于带有 .NET 的 apache apollo mq的主要内容,如果未能解决你的问题,请参考以下文章

apache-apollo安装及配置过程

29. Apache apollo

带有 Apollo 的 Angular graphql

Apache Apollo 示例 JAVA

apache-apollo MQTT本地测试服务器搭建

如何在本地网络上部署带有 apollo 客户端和 apollo-server 后端的 React 应用程序