|
|
1
4
这其实不是一个发展问题,但我确实有一些意见。
如果您将部署到一个他们知道并喜欢SQL Server,但没有管理MSMQ经验的商店,那么对队列使用SQL(本质上是向SQL添加一个额外的表)对他们来说将很容易-基本上没有额外的操作成本。另一方面,使用MSMQ将需要员工接受培训,开发和验证新的程序、新的备份计划、新的监视和管理工具等。反之亦然-在极少数情况下,商店有良好的MSMQ经验,但很少有SQL Server经验。在这种情况下,反之亦然:使用MSMQ。
第二个标准是使用队列。如果要大量使用队列,假设每台服务器每小时有成百上千的事务,那么您可能需要一个专用的队列服务,而不是小费支持现有的数据库。如果您想利用各种MSMQ功能,如死信队列、优先级消息、触发、通讯组列表和相关id,则建议使用MSMQ。另一方面,如果您的容量很低(例如,每小时数百个事务),并且您没有使用更高级的队列功能,那么您可以只在SQL表上使用队列外观。轻松点。 如何平衡这两个主要标准由你决定。 非标准包括:可编程性(两种选项在各种语言中都很容易开发)、事务量(可以处理小到大容量)、数据格式(两者都是灵活的W.R.T.数据内容和格式)。 在任何情况下,如果您已经在运行Windows服务器,我都不建议使用备用队列。IBM在Websphere MQ(nee MQSeries)中有一个很好的版本,但它不像MSMQ那样是免费的。另外,除非您正在执行多平台队列网络,否则可能不需要MQSeries。我认为任何其他排队系统都不足以成为主流。 如果你不改变你的模式一点点-你可能对WCF和WF的婚姻感兴趣,微软最近已经做了。它允许WCF服务启动工作流(WF)。WF引擎本身支持排队、调度和钝化——本质上是有一个队列支持它,但作为程序员,您不能直接处理队列隐喻。相反,这是一个新的“工作流”隐喻。WCF和WF,像MSMQ一样,都是免费的(也就是说,除了授权Windows服务器的成本之外,没有额外的成本);都包含在Windows服务器中。这种WCF+WF方法可能是一个更吸引人的模型,供您用于新的开发,或者如果您希望利用WF设计器和工具。与其他MS-app平台一样,WF支持事务访问,因此您可以提供fire和forget语义。 祝你的决定好运。 |