繁体   English   中英

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

[英]to MSMQ or not to MSMQ? (or SQL Table as the Queue)

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

编辑:(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之间的比较很好:
消息队列的好策略?

我会使用MSMQ,它不会增加那么多复杂性,并且它很容易备份消息,因此即使在系统重启后处理也可以继续。 你可以使用像SSB这样的东西。

在这两个选项中,MSMQ实际上更简单。 如果您需要重新确定工作的优先级,或者让处理代理只选择某些类型的排队作业,那么您就无法使用MSMQ。 如果你不需要任何这些花哨的东西,那么MSMQ就是用于.NET的蛋糕。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM