【问题标题】:Can Put Large Binary Files in RabbitMQ Queue可以将大型二进制文件放入 RabbitMQ 队列
【发布时间】:2012-12-20 18:49:43
【问题描述】:

我正在尝试设计一个多服务器更新部署系统,我在想是否对大二进制字符串有任何限制。例如,如果我将一个 100MB 文件中的字符串放入队列中?

谢谢,
佩德罗

【问题讨论】:

    标签: deployment rabbitmq setup-deployment updatemodel


    【解决方案1】:

    我已经做到了,我不一定会推荐它。将文件存储在 GridFS (MongoDB) 之类的文件中,然后在 RabbitMQ 消息中引用 _id 可能会更好。然后,您可以使用 Mongo 的界面将文件拉到消费者上,并在完成后将其删除。

    我在 GridFS 中运行了大约 2000 万个对象,并且它坚如磐石。

    【讨论】:

      【解决方案2】:

      搜索“RabbitMQ Large Files”会发现大量关于该主题的建议。

      标准的响应似乎是理论上它应该能够处理它,但您可能会发现您的经纪人变得没有响应。

      如果您拥有队列的两端(发送方/接收方),那么您可以考虑将数据分块为更易于管理的数据“块”。例如100KB 块。这对您的经纪人会更好。上面的一个搜索结果有一个链接,指向一个用 ruby​​ 编写的“流”发件人,该发件人进行了分块。

      如果您不拥有队列的两端,则考虑使用“claim check”的形式,其中您的消息包含存储位置中大型 blob/文件/数据的位置更适合它。

      这可能是非常有趣的背景信息:http://rabbitmq.1065348.n5.nabble.com/Can-RabbitMQ-handle-big-messages-tt566.html#a569

      【讨论】:

        猜你喜欢
        • 2010-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-20
        • 1970-01-01
        相关资源
        最近更新 更多