我的团队负责人要求我调查 MSMQ 作为我们新版本产品的一个选项。我们在当前版本中使用 SQL Service Broker。我已经完成了相当多的实验和谷歌搜索,以找到哪种产品更适合我的需求,但我想我会询问我所知道的最好的网站来获得编程答案。
一些细节:
- 我们的客户端是 .NET 1.1 和 2.0 代码;这是发送消息的地方。
- SQL Server 2005 实例中的目标。所有消息最终都是数据库更新或插入。
- 我们将发送一些必须作为交易处理的更新。
- 我们必须有完美的消息可恢复性;没有消息可以丢失。
- 即使目标 SQL 服务器关闭,我们也必须是异步的并且能够接受消息。
- 开发我们自己的排队解决方案不是一种选择。我们是一个小团队。
到目前为止我发现的事情:
- MSMQ 和 SQL Service Broker 都可以完成这项工作。
- 似乎服务代理处理事务消息的速度更快。
- Service Broker 需要在某处运行的 SQL 服务器,而 MSMQ 需要在某处运行的任何已配置的 Windows 机器。
- MSMQ 似乎更好/更快/更容易在集群中设置/运行。
我错过了什么吗?这里有明显的赢家吗?任何想法、经验或链接都会受到重视。谢谢!
编辑:我们最终坚持使用服务代理,因为我们在一些客户端代码中使用了自定义数据库框架(我们更好地处理事务)。该代码捕获了事务的 SQL,但没有捕获 . 客户端代码也是 .NET 的所有 1.1 版本,因此我们必须升级所有客户端代码。谢谢你的帮助!