【问题标题】:Is MSMQ a good ideaMSMQ 是个好主意吗
【发布时间】:2010-11-05 09:57:33
【问题描述】:

系统 A 通过 UI 从用户那里获取 X 信息。此信息经过验证并保存在数据库中。用户可以更改、添加或删除信息。我必须使用 Web 服务保持此 X 信息与系统 B 同步。此外,我需要将这些信息保存在数据库中后尽快发送。

我想在这里使用 MSMQ。系统 A 将向队列发送消息。另一个侦听此队列上消息的进程将通过从数据库中读取信息并发送到系统 B 来处理该消息。

我想知道,这里用MSMQ好还是自己写个简单的排队机制,定期轮询数据库。

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

技术平台是带有Oracle数据库的.Net。

【问题讨论】:

    标签: .net oracle msmq


    【解决方案1】:

    数据库轮询可能不是最好的主意,特别是如果您使用的 Oracle 已经包含 advanced queueing。如果您选择进行轮询(违背我的建议),请使用 DBMS_ALERT 通知发送进程更改。

    【讨论】:

    • 我对高级排队知之甚少。我需要在队列表中记录一条记录,oracle 排队机制将选择记录,我们可以处理。比 MSMQ 更好吗?
    • 我没有使用 MSMQ 的经验,所以我不能告诉你哪个更好。两者都可以,可能。
    【解决方案2】:

    MSMQ 在您的场景中似乎非常方便,因为您不熟悉 Oracle 中的 AQ。在您的情况下,MSMQ 的复制速度肯定足够快。为相同目的编写自己的队列不亚于重新发明轮子并增加您必须维护的代码。在 .NET 中实现 MSMQ 是无摩擦的,这是另一个优点。

    【讨论】:

    • 嗯,我也不知道 MSMQ,我只知道这个概念。
    【解决方案3】:

    您可以考虑synchronization services。你可以同时使用SQL Server and Oracle

    【讨论】:

    • 我对此一无所知,但似乎它直接数据库到数据库同步。我不能这样做,因为直接连接不可用。我必须使用网络服务来发送数据。
    猜你喜欢
    • 2020-03-29
    • 1970-01-01
    • 2013-04-01
    • 2010-12-28
    • 2010-10-19
    • 2017-01-13
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多