【问题标题】:Can any of my consumer take the messages from queue?我的任何消费者都可以从队列中获取消息吗?
【发布时间】:2013-09-19 16:09:26
【问题描述】:

我正在开发一个应用程序。我正在使用activemq。有没有办法做到这一点,一个生产者总是向一个代理发送消息,但在另一边有 3 个消费者。每个消费者都听代理,可以从队列中获取任何消息。这可能吗?

我正在使用 activemq 来编写我的应用程序。记录到数据库。你知道将日志写入数据库是一个耗时的过程。这就是为什么消费者比生产者越来越慢的原因。例如。我发送了 100.000 条消息(巨大的对象)。生产者在 20 分钟内完成发送消息。但是当生产者完成时,消费者已经完成了 4.000 条消息处理。

【问题讨论】:

    标签: activemq


    【解决方案1】:

    是的,您所描述的是可能的。事实上,你可以让任意数量的消费者在一个队列上监听。消息在消费者之间以循环方式发送。

    您应该注意的是,ActiveMQ 在发送小消息方面的性能要好于大消息。如果您需要发送非常大的有效负载(例如 100mb),最好将消息保存到生产者和消费者都可以访问的位置(例如网络文件系统),然后发送消息的位置。然后,消费者可以使用它来手动读取消息。这样,您通过消息代理获得的流量相对较少。

    【讨论】:

    • 非常感谢杰克
    猜你喜欢
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多