【问题标题】:Does RabbitMQ offer the following features? [closed]RabbitMQ 是否提供以下功能? [关闭]
【发布时间】:2013-01-31 07:59:51
【问题描述】:

我最近在我的一个项目中使用了 N Service Bus,虽然我喜欢它,但我仍在寻找替代选项。我偶然发现了 RabbitMQ,但在尝试之前,我想了解以下内容:

1- 可靠吗? (使用 N 服务总线,如果消息被发布到队列,侦听器总是会收到它)。

2- 如果客户端关闭,它是否会在可用时自动获取消息?就像在 NSB 中一样。

3- 它在资源上是否轻量级(NSB 非常轻量级)?

4- 与 .Net 集成是否容易?

5- 管理面板是否适用于开源免费版本?

6- 如果消息未发布等,是否容易追踪问题? (这就是 NSB 的痛点)

7- 它是否支持复杂的场景,即一条消息可能有 N 个侦听器或需要侦听多个消息的单个侦听器等?

8- 是否可以通过代码进行配置? (个人不喜欢用heave Config文件,个人选择)

9- RabbitMQ 的 .Net API 是干净的还是使代码混乱?

请给我您的反馈。以上所有问题都与开源版本有关,我还不想购买许可版本。 还建议是否有其他可用的选项。

谢谢,

【问题讨论】:

  • 您是否阅读过 RabbitMQ 网站和文档来尝试回答这些问题?
  • RabbitMQ是一种类似于MSMQ的消息队列技术。 NServiceBus 利用消息队列技术在端点之间可靠地发送消息。 NServiceBus 默认使用 MSMQ,但也可以配置为使用 RabbitMQ。 1-8 的答案是“视情况而定”。 9 的答案是“你必须编写更多的代码,这样就有更多的机会产生混乱的代码”。
  • 我相信我提出的大部分问题都可以通过使用它的经验来回答。

标签: rabbitmq nservicebus


【解决方案1】:

可靠吗? (使用 N 服务总线,如果消息被发布到队列,监听器总是会收到它)。

是的。此外,您可以更好地控制 rabbitmq 中的“可靠性”,例如,您可以指定队列是持久的(这意味着消息在传递之前会持久保存到磁盘)。

2- 如果客户端关闭,它是否会在可用时自动获取消息?就像在 NSB 中一样。

是的。

3- 它在资源上是否轻量级(NSB 非常轻量级)?

RabbitMq 是用 erlang 编写的,并作为它自己的进程运行。您可以深入了解它是如何消耗内存的,但实际的资源使用情况将取决于您的工作负载。

4- 与 .Net 集成是否容易?

是的。基本的 rabbitmq C# 包装器非常易于使用,并提供了对 rabbitmq 概念的非常简单的抽象。如果您来自 NServiceBus(我相信它有一个 RabbitMQ 适配器),则可以使用更高级别的库。你应该看看 MassTransit,它可以使用 RabbitMQ 和 MSMQ 作为传输,以及像我自己的 chinchilla 或 EasyNetQ 这样的库,它们只是 RabbitMQ。

5- 管理面板是否适用于开源免费版本?

是的。

6- 如果消息未发布等,是否容易追踪问题? (这就是 NSB 的痛点)

是的。使用管理工具,您可以查看交换和队列之间的绑定。

7- 它是否支持复杂的场景,即一条消息可能有 N 个侦听器或需要侦听多个消息的单个侦听器等?

是的。

8- 是否可以通过代码进行配置? (个人不喜欢用heave Config文件,个人选择)

是的。

9- RabbitMQ 的 .Net API 是干净的还是使代码混乱?

是的。

【讨论】:

  • 优秀而中肯的答案,正是我所希望的,谢谢 Jonnii!希望我能给你 20 票:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-29
  • 2011-05-13
  • 1970-01-01
  • 1970-01-01
  • 2010-12-30
  • 2016-05-20
相关资源
最近更新 更多