消息队列系统

时间:2010-02-18 16:47:16

标签: c# queue message-queue

我正在编写消息队列系统。

我的问题是......用文件或数据库做这个队列会更好吗?

如果我要选择数据库,它需要每秒检查一次新的工作,这对我来说似乎有些开销?

如果是文件,我猜你只是不断监视文件夹并根据它执行?

BR,

6 个答案:

答案 0 :(得分:28)

请勿reinvent the wheel

[编辑:2014年更新,现在链接到兔子MQ,因为Ayende已经转向制作文档数据库而不是消息队列,但RabbitMQ再次出现了。我不会写这个,但现在帖子需要30个字符所以我需要喋喋不休。]

答案 1 :(得分:26)

我选择选项“C” - 使用已内置于Windows的消息队列:

  

https://msdn.microsoft.com/en-us/library/ms973860.aspx

答案 2 :(得分:5)

您决定“更好”的标准是什么?性能?可扩展性?可靠性?成本?

基本权衡是:

数据库 - 事务支持,完整性保证(通过约束),更丰富的查询支持,可能将更好地扩展(取决于实现)

文件系统 - 更便宜,更简单,移动更少的部件(至少在最初阶段)

您可能希望首先查看现有解决方案 - MSMQ,SQL Server代理,开源库,例如Rhino队列(http://ayende.com/Blog/archive/2008/08/01/Rhino-Queues.aspx

答案 3 :(得分:3)

如何查看MSMQ

答案 4 :(得分:2)

这取决于您的要求,但如果您需要将多个邮件排队为一个组,则需要某种事务支持。在这种情况下,数据库就是你的朋友。

答案 5 :(得分:2)

您是否正在编写消息队列系统,因为您要编写消息队列系统;或者这只是解决更大问题的一部分?

我建议不要编写新的消息队列系统。您可以使用MSMQ或其他现成的东西。