bay*_*ezy 24 rabbitmq
我成功使用RabbitMQ.但是,我有一个问题,如果我遇到队列中有大量消息的情况,那么消费者(Windows服务)会尝试全部获取它们然后只是保留它们但从不动作或确认它们.
当处于就绪状态的消息数量较少时,消费者处理吞吐量很好,就好像存在问题并且存在积压,那么它就太贪婪了.
有没有办法配置消费者在任何时候尝试并承担责任的最大消息数量?
我可以看到该RequestedChannelMax字段RabbitMQ.Client.ConnectionFactory是否正确设置限制此?
RequestedChannelMax
RabbitMQ.Client.ConnectionFactory
谢谢
小智 34
默认情况下,消费者将读取带宽可以处理的消息数量,而不管消费者的实际消息处理时间如何.
您需要通过修改通道的服务质量(QoS)来设置预取值,以限制它一次尝试拾取的消息数量.在这里查看basic.qos .它有3个参数,一个大小(以八位字节为单位),一个计数(它将一次拾取的整个消息的数量)和一个全局标志.
如果您对优化吞吐量感兴趣并且有关预取约2/3页面内容的讨论,那么这篇博客文章是一本有趣的读物.
希望有所帮助!
归档时间:
12 年,3 月 前
查看次数:
16407 次
最近记录: