MSMQ是一个好的选择吗?

5

System A通过UI从用户那里捕获X信息。此信息经过验证后在数据库中持久化。用户可以更改、添加或删除信息。我必须使用Web服务将此X信息与System B保持同步。并且需要在其在数据库中持久化后尽快发送此信息。

我考虑在此处使用MSMQ。System A将向队列发送消息。另一个进程在此队列上监听消息,通过从数据库读取信息并发送到System B来处理该消息。

我想知道,在此处使用MSMQ是否是一个好主意,还是编写自己的简单队列机制,通过定期轮询数据库来实现。

由于需要准实时传输和保证,我认为使用MSMQ是个好主意。是否有其他更好的解决方案可用?

技术平台是.Net,使用Oracle数据库。

3个回答

4

数据库轮询可能不是最好的选择,特别是如果你正在使用已经包含高级队列的Oracle。如果你选择做轮询(虽然我不建议这样做),请使用DBMS_ALERT来通知发送进程有变化。


我对高级排队知之甚少。我需要在队列表中记录一条记录,然后Oracle排队机制将选择该记录,我们可以进行处理。这比MSMQ更好吗? - Bhushan Bhangale
我没有 MSMQ 的经验,所以无法告诉你哪个更好。两者都可以,很可能。 - Erich Kitzmueller

4

对于您不熟悉Oracle中AQ的情况,MSMQ似乎非常方便。在您的情况下,MSMQ足够快速地进行复制。编写自己的队列以达到相同的目的不仅是重复造轮子,还会增加您需要维护的代码量。在.NET中实现MSMQ是毫无障碍的,这也是一个优点。


我对 MSMQ 也没有什么概念,只是知道这个概念而已。 - Bhushan Bhangale

1

1
我不太清楚这个,但似乎是直接数据库到数据库同步。由于没有直接连接功能,我无法进行此操作。我必须使用 Web 服务来发送数据。 - Bhushan Bhangale

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接