C#中的持久工作队列

时间:2011-08-23 15:27:24

标签: c# .net queue message-queue

想象一下,我希望有一个小型的工作人员无人机网络可能在不同的线程上,可能在不同的进程上,甚至在不同的PC上。工作项目由中央计划创建。

我正在寻找能够为我完成所有这一切的现有产品或服务。我知道有MSMQ和MQSeries。 MQSeries太贵了。众所周知,MSMQ不可靠。数据库支持的系统没问题,但我不想拥有/管理/写它。我想使用别人的工作队列系统。

相关文章:

3 个答案:

答案 0 :(得分:11)

如果您遵循某些指导原则,您可以将数据库用作队列存储并取得良好成功,请参阅Using tables as Queues

SQL Server自带内置消息队列,即Service Broker。它允许您在可扩展性,可靠性和高可用性以及灾难恢复方案方面避免许多MSMQ陷阱。

Servcie Broker完全集成在数据库中(没有外部存储,一个一致的备份/恢复,一个故障转移单元,消息存储和数据库之间不需要昂贵的两阶段提交DTC,一个单独的T-SQL API到访问和编写消息和数据)并且还有一些很好的独特功能,例如transactional messaging with guaranteed Exactly-Once-In-Order deliverycorrelated message lockinginternal activation等。

答案 1 :(得分:7)

我过去曾使用Rabbit MQ作为宠物项目,您可以将其添加到队列系统的列表中。

就包装队列的框架而言,你可以看看http://www.nservicebus.com/我们在这里做了几个基本项目。这是一个快速入门示例:http://meisinger2.wordpress.com/2009/11/09/nservicebus-fifteen-minutes/

答案 2 :(得分:1)

我过去成功使用过MassTransit。它支持使用MSMQ以及RabbitMQ。