一.消息生成者
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單個消費者參數配置,限流參數配置
