首页
学习
活动
专区
圈层
工具
发布

MSMQ冗余
EN

Stack Overflow用户
提问于 2009-01-30 22:45:37
回答 2查看 4.2K关注 0票数 2

我正在调查WCF/MSMQ。

有人知道如何使用MSMQ处理冗余吗?据我所知,队列位于服务器上,但如果服务器宕机且不可恢复,如何防止消息丢失呢?

关于这个话题有什么好文章吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-01-30 22:56:38

有一篇关于在企业here中使用MSMQ的好文章。

提示8是你应该阅读的。

“使用Microsoft的Windows群集工具,如果其中一台队列服务器停止正常工作,队列将从一台计算机故障转移到另一台计算机。故障转移过程将队列及其内容从出现故障的计算机移动到备份计算机。Microsoft的群集工作正常,但根据我的经验,它很难正确配置,而且经常出现故障。此外,要运行Microsoft的Cluster Server,您还必须运行Windows Server Enterprise Edition-这是一种授权成本很高的操作系统。所有这些问题都需要寻找替代方案。

使用Microsoft的Cluster Server的一种替代方案是使用第三方IP负载平衡解决方案,其中有几种是商业上可用的。这些设备像标准网络交换机一样连接到您的网络,一旦配置完成,就会在配置的设备之间对IP会话进行负载平衡。要对MSMQ进行负载平衡,您只需在负载平衡设备上设置一个虚拟IP地址,并将其配置为负载平衡端口1801。为了连接到MSMQ队列,发送应用程序指定由负载平衡设备承载的虚拟IP地址,然后负载平衡设备在承载接收应用程序的已配置计算机上有效地分配负载。这不仅增加了您可以处理的消息的容量(只允许您向服务器场添加更多的机器),还可以保护您免受服务器故障引起的停机事件的影响。

要使用硬件负载均衡器,您需要在配置为用于负载均衡的每个服务器上创建相同的队列,让负载均衡器将发送应用程序连接到组中的任何一台机器。要添加额外的健壮性层,您还可以将所有接收应用程序配置为监视组中所有其他计算机的队列,这有助于防止在一台或多台计算机不可用时出现问题。在远程机器上进行此类队列监视的成本很高(从本地队列读取消息几乎总是更有效),但额外的可用性级别可能是值得的。“

票数 6
EN

Stack Overflow用户

发布于 2009-01-30 23:00:22

不是讽刺,但你已经回答了你自己的问题。如果服务器不可恢复,则无法恢复消息。

话虽如此,您可能希望定期备份邮件文件夹。这篇TechNet文章将告诉你如何做:

http://technet.microsoft.com/en-us/library/cc773213.aspx

此外,它不会备份快速消息,因此这是您必须注意的事情。

如果您愿意,您可能希望在收到消息时将实际消息存储在数据库中进行处理,并在生产者/消费者模式中让服务成为消费者。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/497586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档