我正在考虑在基于一堆WCF服务的产品中添加队列函数。我读过一些关于MSMQ的知识,首先我认为这是我需要的,但我不确定,并且正在考虑将队列放入数据库表中。我想知道这里的somone是否会得到一些反馈意见。在负载平衡环境中的WCF服务之间的MSMQ
基本上,我打算在http上调用外观WCF服务。立面服务应该只将所有传入消息写入队列,以对呼叫系统作出快速响应。队列中的消息应该由另一个组件来处理,这些组件可以是WCF服务或Windows服务,具体取决于我选择的队列。
该产品运行在负载平衡的环境中,具有2到n个Web服务器。
我在考虑我的选项和问题是:
- 要让门面WCF写入到MSMQ,然后有anothther WCF服务从队列中读取做消息的处理。从我读到的内容来看,我对这种替代方法并不感到自信,因为它将如何在负载平衡的环境中工作。
1A。 MSMQ应该放在哪里?每个Web服务器上有一个?一个在单独的服务器上?在单独的服务器上多重? (不考虑冗余的需要,并且罕见情况下的数据可能丢失并重新发送)
1B。如果我想让系统冗余,设计会如何影响?我希望能够保持MSMQ而不丢失该队列中的数据,从而失去一台服务器(它再也不会在线)。从我读过的有关MSMQ的文章中,我可以看出将MSMQ放置在Windows群集上的唯一选择。那是对的吗? (我想避免使用这个窗口集群)。
- 第二个设计方案是让外观WCF服务将队列写入数据库。然后有两个或多个Windows服务来处理队列。我对这个选择没有任何问题。如果你想知道为什么我不选择这个,因为它对我来说似乎更简单,那是因为我想建立这个不会为解决方案引入任何Windows服务,我相信MSMQ得到了我不想要的功能代码我自己,我也很好奇使用MSMQ,因为我从来没有使用它。
问候 哈坎
您提到了两个选项,一个中央队列或带有中央接收器的本地队列。我会阅读你提供的链接,也许他们会提供帮助。我会告诉你。由于我是新来的如何做WCF-MSMQ的事情,我不知道我在想什么与“与MSMQ集成的WCF”有什么不同。 – 2011-05-05 07:31:58
“带有MSMQ集成的WCF”意味着使用MSMQ作为传输协议,而不是HTTP将WCF调用传递给服务。 – 2011-05-05 17:38:08
这与“WCF MSQM集成”有何不同之处在于为我节省了一些编码吗? – 2011-05-10 09:36:11