RabbitMQ是否提供以下功能?

时间:2013-01-31 07:59:51

标签: rabbitmq nservicebus

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

1-可靠吗? (使用N Service Bus,如果消息发布到队列,则侦听器始终接收它)。

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

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

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

5-管理员面板是否可以使用开源免费版本?

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

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

8-可以从代码配置吗? (我个人不喜欢使用升沉的配置文件,只是个人选择)

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

请告诉我你的反馈意见。以上所有问题都与开源版本有关,我还不想购买许可版本。 还建议是否还有其他选择。

谢谢,

1 个答案:

答案 0 :(得分:1)

可靠吗? (使用N Service Bus,如果消息发布到队列,则侦听器始终接收它)。

是。此外,您可以更好地控制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-可以从代码配置吗? (我个人不喜欢使用升沉的配置文件,只是个人选择)

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