当前位置:  开发笔记 > 编程语言 > 正文

在Windows上排队MSMQ的队列?

如何解决《在Windows上排队MSMQ的队列?》经验,为你挑选了4个好方法。

如果你想在Windows下使用排队产品进行持久消息传递,运行.NET 2.0及更高版本,那么今天存在哪些MSMQ替代品?我知道ActiveMQ(http://activemq.apache.org/),我看过WSMQ的引用(指向http://wsmq.net),但该网站似乎已经关闭.

还有其他选择吗?



1> csmba..:

可能不是这里的"最佳实践"建议......但是基于现实生活中的需求和经验:我们有分布式系统,每10个客户运行60个盒子,所有人都执行任务X,他们需要从队列中接受下一个任务.队列正在从另一个"客户端"馈送......

我们曾经使用过程间通信,我们使用了MSMQ,我们尝试过服务代理......它只是长期不起作用,因为你放弃了对微软的应用程序的控制.只要您的需求得到满足,它就会很好用.当你需要一些不受支持的东西时,它会成为地狱.

对我们来说最好的解决方案是:使用SQL数据库表作为队列.不要在那里重新发明轮子,因为你会犯错误(锁).有关于如何操作的信息,它非常简单,我们每24小时处理超过200K消息(60x10 = 600并发读取和写入队列).这是除了处理其余应用程序内容的同一SQL服务器之外......

MSMQ不起作用的一些原因:

    当您需要将队列的逻辑更改为FIFO而不是"最旧的RED消息"或"最旧的BLUE消息"时,您无法执行此操作.(我知道人们会说什么,你可以通过拥有一个红色队列和一个蓝色队列来实现 ......但是,如果队列的数量/类型是动态的,基于应用程序的管理方式并且每天都在变化怎么办?)

    它增加了一个故障点和部署噩梦(队列是一个失败的点,你需要处理在所有盒子上设置正确的权限以读取/写入消息等'你在血液中为这些类型的东西支付的企业软件) .SQL服务器......所有客户端都已经从DB中写入/读取,它只是一个表...


但是,使用SQL Server并不能替代MSMQ的所有功能.MSMQ正确完成意味着您的60个盒子中的每一个都可以在中央服务器脱机时工作(只要有足够的消息传递以保持它们忙碌).对于您的场景(在线场景中分发工作),SQL是有道理的,但我不确定它是一般的"替代MSMQ".
这是一个队列,为什么你想要一个无FIFO队列?这就是队列.
更不用说24小时内的200k消息在某些系统中并不算什么.

2> RogerV..:

我不能开始说一些关于Tibco EMS的好东西 - 一个Java JMS消息传递规范的实现.Tibco EMS对.NET客户端提供了极好的支持 - 包括WinCE上的Compact Framework .NET.(他们也有C客户端库.)

因此,如果您正在构建涉及在Windows,Unix(AIX/Solaris),Linux或Mac OS X上运行的消息传递代码的异构分布式应用程序,那么就可以使用Tibco EMS.

看看我的文章:

使用JMS进行分布式软件开发

我曾经在微软工作,并在那里与MSMQ做了一些实现.但是你知道,微软只关注Windows.他们依靠第三方为其他平台提供MSMQ客户端.我与Tibco EMS的相遇是一次更好的体验.很明显,Tibco比微软更了解消息.Tibco致力于支持各种客户端绑定.这就是为什么他们最终将产品名称从Tibco JMS更改为Tibco EMS(企业消息服务).

我确实围绕Tibco EMS构建了异构软件系统.滚动C#.NET Winform客户端通过Tibco EMS消息传递与Java/JBoss中间层交互.(还有使用Compact Framework .NET Tibco客户端的WinCE工业嵌入式计算机.)

链接到我的JMS作品



3> Sixto Saez..:

RabbitMQ框架似乎在这里被忽略了.如果人们仍然关心,它确实有一个.NET 2.0代码库,它带有类似于netMsmqBinding的WCF绑定.绑定自然至少需要.NET 3.0,它具有比内置netMsmqBinding更多的功能.最重要的是,它是Mono友好的.值得一看.


另外:需要非常简单的Erlang设置.

4> Ubiguchi..:

那么SQL 2005的服务代理呢?

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有