【问题标题】:Message queue system消息队列系统
【发布时间】:2011-01-18 10:09:16
【问题描述】:

我正在编写消息队列系统。

我的问题是...用文件或在数据库中做这个队列更好吗?

如果我要选择数据库,它需要每秒检查新作业,这对我来说似乎有点开销?

如果是文件,我猜你只是不断地监视文件夹并基于它执行?

BR,

【问题讨论】:

    标签: c# queue message-queue


    【解决方案1】:

    我选择选项“C”——使用 Windows 中已经内置的消息队列:

    https://msdn.microsoft.com/en-us/library/ms973860.aspx

    【讨论】:

    • 此链接已损坏
    • @CoderDennis 更新。
    【解决方案2】:

    怎么可能想看看MSMQ

    【讨论】:

    • 由于您不经常使用meta,所以我在这里发表评论是为了让您知道我回复了您关于meta这个问题的帖子。
    【解决方案3】:

    不要reinventthewheel

    [编辑:2014 年更新,现在链接到 rabbit MQ,因为 Ayende 已经开始制作文档数据库而不是消息队列,但是 RabbitMQ 又来了。我不会写这个,但现在帖子需要 30 个字符,所以我需要啰嗦一下。]

    【讨论】:

      【解决方案4】:

      您决定“更好”的标准是什么?表现?可扩展性?可靠性?成本?

      基本的权衡是:

      数据库 - 事务支持、完整性保证(通过约束)、更丰富的查询支持,可能会更好地扩展(取决于实现)

      文件系统 - 更便宜、更简单、更少移动的部件(至少在最初)

      您可能想先看看现有的解决方案 - MSMQ、SQL Server 代理、Rhino 队列等开源库 (http://ayende.com/Blog/archive/2008/08/01/Rhino-Queues.aspx)

      【讨论】:

        【解决方案5】:

        您是否正在编写消息队列系统,因为您想编写消息队列系统;还是这只是解决更大问题的一部分?

        我建议不要编写新的消息队列系统。您可以使用 MSMQ 或其他现成的东西。

        【讨论】:

          【解决方案6】:

          这取决于您的要求,但如果您需要将多条消息作为一个组排队,则需要某种事务支持。在这种情况下,数据库就是你的朋友。

          【讨论】:

            猜你喜欢
            • 2012-04-10
            • 1970-01-01
            • 1970-01-01
            • 2014-08-26
            • 2020-09-12
            • 2012-09-22
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多