到MSMQ或不到MSMQ?(或SQL表作为队列)

Ed *_*nek 12 .net sql-server msmq service-broker

我有一个分布式系统,其中将有1个SQL Server,1-n处理服务器和1-n数据供应商(网络中的硬件设备).提供的数据需要在进入关系数据库结构之前进行处理 - 由处理服务器执行(作为Windows服务 - .net代码来解析数据,处理数据并将其插入关系结构中.)
处理潜力加载而不是减慢数据供应商的速度,我想实现一个队列,但我不确定我是否想要将MSMQ服务器的复杂性添加到混合中.是否有一个很好的MSMQ替代方案,例如使用DB(平面表)作为队列?.NET是否为DB队列提供了任何开箱即用的支持,还是有另一种可靠的排队选项?
谢谢

编辑:(11月29日,晚上11:30)
听起来像SQL Service Broker(SSB)可能会这样做.
http://www.netframeworkdev.com/windows-communication-foundation/service-broker-vs-msmq-as-reliable-queueing-mechanism-63981.shtml

编辑:(11月30日,上午7:45)
发现另一个非常有用的链接:
http://social.msdn.microsoft.com/Forums/en-US/sqlservicebroker/thread/52687510-0852-44f3-bfcd-83610d1c1b9a
我也在研究将要提供的数据的最大/最小尺寸.在他们的头顶,有谁知道MSMQ和/或SSB容纳的最大尺寸?
MSMQ:4MB消息大小
SSB:2GB消息大小

编辑:(30 nov,8; 15am)
MSMQ和SSB之间的比较:
消息队列的良好策略?

fAR*_*cRY 4

我会使用 MSMQ,它不会增加太多复杂性,而且备份消息非常容易,因此即使在系统重新启动后处理也可以继续。您可以使用 SSB 之类的东西。

  • 特别是使用事务性 MSMQ。 (2认同)