springboot配置rabbitmq

一.消息生成者

1.1消息生成者配置

 

 1.2 消息发送端代码

 

 1.3 创建交换机,队列,并建立关系

 

 

 

 

 二.消费者

2.1消费者

 三.限流配置

  3.1配置文件

#在单个请求中处理的消息个数,他应该大于等于事务数量(unack的最大数量)
spring.rabbitmq.listener.simple.prefetch=2

#在@RabbitListener(queues = { HighDeviceMessage.QUEUE_NAME },concurrency = "${spring.rabbitmq.highdevice.concurrency}")配置的占位符配置
spring.rabbitmq.highdevice.concurrency=2-5

 3.2消费者配置
@Component
public class HighDeviceMessageHandler {

//    @RabbitListener(queues = { HighDeviceMessage.QUEUE_NAME },ackMode ="MANUAL",concurrency = "1-10")
    @RabbitListener(queues = { HighDeviceMessage.QUEUE_NAME },ackMode ="MANUAL",concurrency = "${spring.rabbitmq.highdevice.concurrency}")
    public void handle(String msgStr, Channel channel,@Headers Map<String,Object> headers) {
        try {
            log.info("休息3秒");
            log.info("handle HighDeviceMessage:{}---",msgStr);
            TimeUnit.SECONDS.sleep(3);
            long deliveryTag = (Long)headers.get(AmqpHeaders.DELIVERY_TAG);
            //手工ack
            channel.basicAck(deliveryTag,true);
        } catch (Exception e) {
            log.error("handle HighDeviceMessage err", e);
        }
    }
}

  


 

2020年6月23日16:58:05  -- 更新mq单个消费者参数配置,限流参数配置

 
posted @ 2020-06-22 10:26  远启  阅读(8245)  评论(0编辑  收藏  举报