RabbitMQメッセージ確認モード:
- AcknowledgeMode.NONE:確認しない
- AcknowledgeMode.AUTO:自動確認
- AcknowledgeMode.MANUAL:手動確認
手動確認に設定されている場合AcknowledgeMode.MANUAL
RabbitMQメッセージリスナーは、メッセージの受信後に確認する必要があります
@RabbitListener(queues = " $ {ocos.rabbit.queue} "、containerFactory = " rabbitListenerContainerFactory " ) public void onMessage(Message message、Channel channel){ try { channel.basicAck(message.getMessageProperties()。getDeliveryTag()、false ); } catch (IOException e){ try { e.printStackTrace(); channel.basicNack(message.getMessageProperties()。getDeliveryTag()、false、false ); }キャッチ(IOException e1){ e1.printStackTrace(); } } }
Rabbitmqは次のように構成されています。複数のコンシューマーがメッセージをリッスンするためのキューを設定できます。
@Bean public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(){ SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConnectionFactory( connectionFactory()); factory.setConcurrentConsumers(3); // 現在のメッセージキューに対して、メッセージ ファクトリを同時にリッスンして消費するように3つのコンシューマを設定します。 setMaxConcurrentConsumers(10 ); // factory.setMessageConverter(producerJackson2MessageConverter()); factory.setAcknowledgeMode(AcknowledgeMode.NONE); // 返されたファクトリを自動的に確認する確認モードを設定する ; }
参考資料:
RabbitMQメッセージ確認メカニズム
rabbitmqは複数のコンシューマーを構成します(再現)