2009-10-19 106 views
1

我有一个电子商务应用程序,这是在2个地域不同的服务器是MSMQ对于这种情况

举办了正确的选择
  • Server_A上 - 托管在我们的前提,包含产品我们的ERP(动态的Navision)softare &数据库

  • SERVER_B - 托管在外部数据中心 - Web应用程序&数据库(不是同一台服务器上 - 这个问题在短短的简化)

当某人在网站上下订单时,订单被写入Server_B上的订单表 这些订单需要放入Server_A订单表中。

目前,有一个DTS脚本可以在Server_B中的任何订单上运行和复制,但不是Server_A 由于移动服务器和应用程序位,这变得很难管理。

我的想法是使用MSMQ在两个位置之间传递订单“消息”。

这是一个可行的选择吗?

回答

1

在“本地”存储订单后,WebService调用的情况如何?

+0

我没有能力改变当前应用程序代码的豪华感 - 基本上,db中的所有数据,我将对新订单执行“foreach”循环,然后将它们放在队列。在Server_A上运行一个服务来侦听此队列,并将数据放入该服务器上的数据库....我想我可以使用Web服务,但是不会msmq提供更大的冗余来解决问题吗? – Alex 2009-10-19 11:40:44

+0

那么,在这种情况下,MSMQ看起来更好。顺便一提?都是SQL服务器MSSQL?如果是,也许您可​​以使用复制服务将订单表复制到您的目标服务器? – 2009-10-20 12:57:36

1

是的,这听起来可行。

在几年前的一次MS活动中,场景几乎完全是一个演示者使用的案例研究(即主要站点有一个紧密耦合的过程,在情人节订购期间无法缩放和崩溃 - 然后他们改为使用MSMQ,因此订单总是可以被采用/排队,然后在其他机器能够处理的时候处理)

只有MSMQ记住的事情是它不能通过一定的大小(如果我记得大约4MB)。这听起来不像对你来说很重要,但是我碰到了一个障碍,那就是建立一个系统,必须随购买订单消息一起收集大量报告。