【问题标题】:RabbitMQ delayed exchange plugin loads and resourcesRabbitMQ 延迟交换插件加载和资源
【发布时间】:2017-01-10 18:15:33
【问题描述】:

我们正在使用 rabbitmq (3.6.6) 将分析(数百万)发送到不同的分析器。这些非常快,我们计划使用 rabbit-message-plugin 来安排对分析元素的监控。

我们正在考虑 rabbitmq-delayed-exchange-plugin,已经做了一些测试,我们需要澄清一下。

目前:

  • 我们正在安排数百万条消息
  • 延迟从几分钟到 24 小时不等
  • 如前所述,这些是测试,因此我们使用的是一台具有一个内核和 4G RAM 的机器,它还运行其他应用程序。

在 2.0G 设置的高内存水印发生了什么:

  • RabbitMQ 最终(一天左右)开始消耗 100%(只有一个核心)并且不响应管理界面也不响应rabbitmqctl。这持续了至少 18 小时(总是最终杀死,删除磁盘上的 mnesia 延迟文件 - 大约 100 / 200 MB - 并重新启动)。

设置为 3.6G 的高内存水印发生了什么:

  • RabbitMQ 被内核杀死,因为在这样工作大约一周后内存使用率很高(4 GB 硬件)。
  • 延迟交换的Mnesia文件大约1.5G
  • RabbitMQ 无法再开始提供以下跟踪(我们假设由于在延迟中被 KILL 消息终止,以某种方式结束了 corruptedsomething

    {could_not_start,rabbit,
    rabbitmq-server[12889]: {{case_clause,{timeout,['rabbit_delayed_messagerabbit@rabbitNode']}},
    rabbitmq-server[12889]: [{rabbit_boot_steps,'-run_step/2-lc$^1/1-1-',1,
    

现在我们在问自己:使用兔子延迟交换插件来获取大量信息,我们是否有点过头了?如果我们是,那么问题结束,重新考虑并重新启动,但如果不是,那么合适的硬件和/或配置设置是什么?

【问题讨论】:

    标签: rabbitmq rabbitmq-exchange


    【解决方案1】:

    RabbitMQ 延迟交换插件的设计不适合存储数百万条消息。

    它也记录在plugin page

    这个插件的当前设计并不真正适合高 延迟消息的数量(例如,数千或数百万)。看 72了解详情。

    另请阅读:https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/issues/72

    这个插件经常被当作 RabbitMQ 是一个数据库来使用。它不是。

    【讨论】:

    • 谢谢,我们似乎在处理旧信息,并且在进行这些测试之前没有阅读过这些信息。谢谢你:)
    • @VdS RabbitMQ 可以使用lazy 队列毫无问题地存储数百万条消息。也许你只需要改变你的应用程序设计:)!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2012-07-03
    相关资源
    最近更新 更多