【发布时间】:2011-01-18 10:09:16
【问题描述】:
我正在编写消息队列系统。
我的问题是...用文件或在数据库中做这个队列更好吗?
如果我要选择数据库,它需要每秒检查新作业,这对我来说似乎有点开销?
如果是文件,我猜你只是不断地监视文件夹并基于它执行?
BR,
【问题讨论】:
标签: c# queue message-queue
我正在编写消息队列系统。
我的问题是...用文件或在数据库中做这个队列更好吗?
如果我要选择数据库,它需要每秒检查新作业,这对我来说似乎有点开销?
如果是文件,我猜你只是不断地监视文件夹并基于它执行?
BR,
【问题讨论】:
标签: c# queue message-queue
我选择选项“C”——使用 Windows 中已经内置的消息队列:
【讨论】:
怎么可能想看看MSMQ
【讨论】:
您决定“更好”的标准是什么?表现?可扩展性?可靠性?成本?
基本的权衡是:
数据库 - 事务支持、完整性保证(通过约束)、更丰富的查询支持,可能会更好地扩展(取决于实现)
文件系统 - 更便宜、更简单、更少移动的部件(至少在最初)
您可能想先看看现有的解决方案 - MSMQ、SQL Server 代理、Rhino 队列等开源库 (http://ayende.com/Blog/archive/2008/08/01/Rhino-Queues.aspx)
【讨论】:
您是否正在编写消息队列系统,因为您想编写消息队列系统;还是这只是解决更大问题的一部分?
我建议不要编写新的消息队列系统。您可以使用 MSMQ 或其他现成的东西。
【讨论】:
这取决于您的要求,但如果您需要将多条消息作为一个组排队,则需要某种事务支持。在这种情况下,数据库就是你的朋友。
【讨论】: