2011-06-20 90 views
9

我找一个排队系统内有多个不同的用户可以拉断的项目集中队列。这些消息将非常轻量级,但我需要的是持久且速度非常快的消息,因为消息量会很大。 MSMQ有点沉重,我正在寻找光线。建议?.NET快速持久队列

+0

数据库表(用适当的锁定机制)? –

+0

我们正在使用一个数据库表。但是,它相当缓慢。我需要更多的吞吐量和希望的功能...... – Matt

+0

“但是,它相当慢。” - 它不应该。你说什么慢? –

回答

2

我觉得这里的问题是你“需要”持久性?如果您需要保护重复项,多个客户端和持久性,那么您将被迫为您的队列管理器执行锁定方案,这会使您的性能降低。除非您将队列存储放在高速文件共享上,否则坚持本身会伤害您。

如果可以重新构建您的应用程序的生存队列崩溃(保持饲料的服务器,或对消息的请求/响应架构),则可以绕过需要持久化。如果你这样做,那么你会发现你的队列管理器专门在内存中运行,并且速度非常快。

+0

有趣。我们正在构建的应用程序的处理器密集程度很高,我曾设想过一种情况,即一台服务器充当向其他“处理”服务器提供任务的经纪人。在这种情况下,我只需要代理上的队列具有弹性。你有没有一个参考点或例子来说明如何构建这样的指南? – Matt

+0

地图从谷歌减少模式? – Spence

+0

http://labs.google.com/papers/mapreduce.html – Spence

3

有上codeproject一个非常好的项目。这是MSMQ的轻量级替代品。 您可以使用自己选择的持久性存储,默认情况下它使用Sqlite。 这真的很好。