RabbitMQ--消费限流与重回队列机制

Rabbitmq提供qos功能,在一定数量的信息未被ack或nack时,不消费新的消息。

void basicQos(int prefetchSize, int prefetchCount, boolean global) throws IOException;

prefetchSize:每个消息体最大字节数
prefetchCount:每次消费的消息个数,告诉RabbitMQ不要一次性推送多个消息。
global:是作用到channel上还是consumer
p r e f e t c h S i z e 和 g l o b a l R a b b i t M Q 没 有 实 现 \color{#FF0000}{prefetchSize和global RabbitMQ没有实现} prefetchSizeglobalRabbitMQ
如果消息入队是设置的为手工签收,消费端没有确认,消费者断开了连接,那么将回重新入队,该消费者将不会继续消费下一条消息。

Spring整合RabbitMq配置消息

#最小线程数-一个线程对应一个channel
spring.rabbitmq.listener.simple.concurrency=10
spring.rabbitmq.listener.simple.max-concurrency=15
spring.rabbitmq.listener.simple.acknowledge-mode=manual
#broken推送的消息个数,如果没有ack或nack,那么将不会推送到该channel中
spring.rabbitmq.listener.simple.prefetch=4

定义了每个消费者并行消费线程数为10,即10个channel,每个channel未被ack和nack消息个数未4个。

RabbitMQ消息端消费出现异常时可考虑重新入队

void basicNack(long deliveryTag, boolean multiple, boolean requeue)
            throws IOException;

requeue设置为true即可

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值