我有一个分布式系统,其中有 1 个 SQL Server、1-n 个处理服务器和 1-n 个数据提供者(网络上的硬件设备)。提供的数据在进入关系数据库结构之前需要进行处理 - 由处理服务器执行(作为 Windows 服务 - .net 代码来解析数据、处理数据并将其插入到关系结构中。)
为了处理潜在的负载并且不减慢数据提供者的速度,我想实现一个队列,但我不确定是否要增加 MSMQ 服务器的复杂性。 MSMQ 是否有一个好的替代方案,例如使用 DB(平面表)作为队列? .NET 是否为数据库队列提供任何开箱即用的支持,或者是否有其他可靠队列的选项?
Thanks
编辑:(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 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 http://social.msdn.microsoft.com/Forums/en-US/sqlservicebroker/thread/52687510-0852-44f3-bfcd-83610d1c1b9a
我还在研究将提供的数据的最大/最小大小。在他们的头顶上,有谁知道 MSMQ 和/或 SSB 能容纳的最大尺寸吗?
MSMQ:4MB消息大小
SSB:2GB消息大小
编辑:(11 月 30 日,上午 8 点;15 点)
MSMQ 和 SSB 之间的精彩比较如下:
消息队列的好策略? https://stackoverflow.com/questions/1338192/good-strategy-for-message-queuing
我会使用 MSMQ,它不会增加太多复杂性,而且备份消息非常容易,因此即使系统重新启动后处理也可以继续。您可以使用 SSB 之类的东西。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)