RabbitMQ优化消息阻塞系列(二)参数调优

本文介绍了RabbitMQ的参数调优,包括生产者客户端的durable参数确保消息持久化,消费者客户端的prefetch参数优化网络开销,concurrency和max-concurrency参数调整线程数,acknowledge参数选择合适的确认机制,以及线程池的合理配置以减少资源损耗。同时,强调了在高并发和低并发场景下各参数的建议值。

参数调优

1. 调优生产者客户端参数

默认消息就是持久化的,如果对应的队列和交换机都没有配置持久化,一旦mq重启,没有配置持久化的队列和交换机将会消失,里面的消息也会消失

  1. durable参数

    在rabbit:queue中,durable=“true” 开启持久化。

    在rabbit:direct-exchange中,durable=“true” 开启持久化。

2. 调优消费者客户端参数

  1. prefetch参数

    在rabbit:listener-container中,一次性预取xx条消息到内存进行消费,能有效减小网络开销,官方推荐100 — 300,这将使消费者在大多数常见场景中保持忙碌,从而提高吞吐量。

    并发流量高的队列建议设置为:100 - 300

    并发流量低的队列建议设置为:1

  2. concurrency和max-concurrency参数

    在rabbit:listener-container中,消费端的监听个数,即@RabbitListener开启几个线程去处理数据。其中需要注意的是,该项目所有concurrency值的和,不能大于2048,不然会报channel异常,max-concurrency同理。

    并发流量高的队列建议设置为:30 -200

    并发流量低的队列建议设置为:2 - 4

  3. acknowledge参数

    在rabbit:listener-container中,消息确认机制,有自动确认、手动确认、不确认3种,不同模式的选择会影响消息性能

    可承受少量消息丢失,可以设为自动确认

    如果为了防止数据丢失,可以设置为手动确认

  4. 消息确认机制中basicAck的multiple参数</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值