我有一个分布式系统,其中将有 1 个 SQL Server、1-n 个处理服务器和 1-n 个数据供应商(网络上的硬件设备)。提供的数据需要在进入关系数据库结构之前进行处理 - 由处理服务器执行(作为 Windows 服务 - .net 代码来解析数据、处理数据并将其插入到关系结构中。)
处理潜在的加载而不减慢数据提供者的速度,我想实现一个队列,但我不确定我是否想将 MSMQ 服务器的复杂性添加到组合中。MSMQ 有没有很好的替代方案,比如使用 DB(平面表)作为队列?.NET 是否为 DB 队列提供任何开箱即用的支持,或者是否有其他可靠队列选项?
谢谢
编辑:(11 月 29 日,晚上 11:30)
听起来 SQL 服务代理(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 消息大小
编辑:(11 月 30 日,上午 8 点 15 分)
这里的 MSMQ 和 SSB 之间进行了很好的比较:
消息队列的好策略?