代码之家  ›  专栏  ›  技术社区  ›  pearcewg

ASP.NET-新应用程序的最佳队列系统

  •  9
  • pearcewg  · 技术社区  · 16 年前

    我的组织正准备实现一个新系统,即ASP.NET应用程序。应用程序将有一个由网站启动的大量脱机工作队列。此队列将包含不同类型的活动,最好是在XML消息中。想想电子邮件通知、计划任务等。

    在过去,组织可能已经使用msmq来完成这项任务。但是,他们认为msmq是老派(我部分同意他们的观点),所以我们将进行架构审查,以确定“最佳”解决方案。

    在我看来,有几个潜在的选择:

    1。坚持在最新版本的msmq上使用新的实现-不理想,但是已知的产品。
    2。使用Windows工作流基金会,我从一些其他开发人员那里听说过。
    三。开发自定义数据库解决方案。

    我是否缺少任何明显的解决方案?理想情况下,这将是一个微软产品,但实际上只需要在一个以微软为中心的商店工作。

    我担心的是:
    1。易于实施和维护
    2。一个解决方案,将在一段时间内
    三。能够处理大量行,其中包含中等大小的XML数据
    4。绝对可靠的队列系统,具有快速更新功能(多个实用程序进程可能会将记录从队列中提取出来进行处理)。

    8 回复  |  直到 15 年前
        1
  •  13
  •   e11s    16 年前

    阅读这篇文章似乎是你认为msmq不合适的唯一原因,因为有人认为它是“老派”。我不认为这是不使用它的充分理由,因为看起来贵公司有使用它的经验,所以没有学习曲线,这意味着容易实现和维护。

    另外,msmq将完美地解决您提到的所有问题。所以,除非有另一个“真正的”理由不使用它,否则我认为还是使用msmq。

        2
  •  3
  •   Guy Starbuck    16 年前

    我建议您研究一下WCF,您可以将其配置为指定持久的、排队的消息传递,它在封面下使用msmq技术。WCF抽象/接口和技术应该存在很长时间。

        3
  •  2
  •   Torbjørn    16 年前

    我同意丛林中的驼鹿,你应该坚持使用msmq。

    我可能会研究一些在封面下使用msmq的替代API,比如 nServiceBus 来自Udi Dahan。

        4
  •  2
  •   Axl    15 年前

    作为ActiveMQ(如上所述)的替代方案,存在开源rabbitmq。据他们所说,它与ASP.NET和WCF完美集成。

    http://www.rabbitmq.com/

        5
  •  1
  •   JoshBerke    16 年前

    您研究过SQL Server中的Service Broker吗?它是一个使用数据库作为后备存储器的排队系统。

        6
  •  0
  •   ChrisLively    16 年前

    您有几个选择:

    1. Biztalk:它是为保证在公司级别的消息传递和路由而构建的。它很难建立,昂贵,有一个陡峭的学习曲线,但一旦你打开它是坚实的。

    2. msmq:速度快,价格便宜,免费,使用方便,简单易行。

    3. SQL服务代理。这是从msmq的一个进步,但从biztalk的一个巨大的进步。

    主要问题实际上归结为您需要的功能集。Biztalk基本上是它自己的开发环境。而msmq要求您围绕它构建一切。

        7
  •  0
  •   James Strachan    16 年前

    您可以考虑使用开源消息代理,例如 Apache ActiveMQ

        8
  •  0
  •   Garo Yeriazarian Changal Rayudu    16 年前

    不过,对于整个系统来说,您可以使用Windows工作流来管理业务逻辑,并只使用msmq作为任务列表的存储。您的工作流程将从队列中提取下一条消息开始,然后确定如何处理它。

    排队是一种你不想和自己搞混的事情,把你的信任放在一个有效的现成的东西上,这已经被很多人测试过了。