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

多播,消息传递,ActiveMQ与MSMQ?

如何解决《多播,消息传递,ActiveMQ与MSMQ?》经验,为你挑选了3个好方法。

我正在为我们的产品开发消息/通知系统.基本要求是:

火与忘记

持久性消息集,可能更新,留在那里直到发送者说要删除它们

这些库将用C#编写.Spring.NET刚刚发布了一个具有大量优秀消息抽象的里程碑版本,这很棒 - 我计划广泛使用它.我的基本问题归结为消息经纪人的问题.我的架构看起来像应用程序 - >消息代理队列 - >侦听的服务器应用程序,将所有消息分派到他们需要去的地方,并处理那些长期消息的生命周期 - >消息代理队列或主题 - >监听应用.

最后,问题是:我应该使用哪个消息代理?我偏向于ActiveMQ - 我们在上一个项目中使用它并喜欢它.我不能想到对它的单一攻击,除了它是Java,并且需要在某个地方的服务器上安装java,这对于将使用这项服务的一些人来说可能很难卖.我一直在关注的另一个选择是MSMQ.我出于某种未知原因对它有偏见,而且它似乎也没有很好的多播支持.

有没有人用MSMQ这样的东西?任何利弊,可能会以某种方式影响投票的东西?

最后一点,我们使用的是.NET 2.0.



1> James Strach..:

我在使用ActiveMQ时有点偏颇,但几乎所有上面列出的MSMQ的好处也适用于ActiveMQ.

ActiveMQ的一些好处包括

对跨语言客户端访问和多协议支持的强大支持

对企业集成模式的出色支持

大量的高级功能,如独占队列和消息组

你提到的主要缺点是ActiveMQ代理是用Java编写的; 但是你可以在IKVM上作为.net程序集运行它,如果你真的想要 - 或者将它作为Windows服务运行,或者通过GCJ将其编译为DLL/EXE.MSMQ可能会也可能不会用.NET编写 - 但它的实现方式并不重要?

无论您选择MSMQ还是ActiveMQ,我都建议至少考虑使用NMS API,正如您所说,它与Spring.NET集成在一起.这个API的MSMQ实现以及TibCo,ActiveMQ和STOMP的实现将通过StompConnect支持任何其他JMS提供程序.

因此,通过选择NMS作为您的API,您将避免锁定任何专有技术 - 然后您可以在任何时间点轻松切换消息提供商; 而不是将您的代码全部锁定到专有API中



2> Darryl Braat..:

MSMQ的优点.

它内置于Windows中

它支持事务,它还支持没有事务的队列

这很容易设置

AD集成

速度很快,但您需要将ActiveMQ和MSMQ与流量进行比较才能知道哪个更快.

.NET支持它诞生

支持火灾和忘记

如果你有看的读者,你可以偷看队列.不确定是否可以编辑队列中的消息.

缺点:

4MB邮件大小限制

2GB队列大小限制

队列项目保存在磁盘上

不是主流的MS产品,文档有点不确定,或者自从我使用它以来已经过了几年.

这是MSMQ的一个很好的博客



3> 小智..:

看看zeromq吧.它是最快的消息队列之一.

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