From eae7539173cea72f0a7c76625c636f5b19e7ee72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=9E=AC=EC=9A=B0?= <박재우@DESKTOP-EF7ECBO> Date: Tue, 17 Jan 2023 14:25:22 +0900 Subject: [PATCH] =?UTF-8?q?Rabbitmq=20-=20queue=20Ack=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/message/consumer/MessageConsumer.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/palnet/biz/message/consumer/MessageConsumer.java b/src/main/java/com/palnet/biz/message/consumer/MessageConsumer.java index d424eff..9285534 100644 --- a/src/main/java/com/palnet/biz/message/consumer/MessageConsumer.java +++ b/src/main/java/com/palnet/biz/message/consumer/MessageConsumer.java @@ -30,11 +30,20 @@ public class MessageConsumer { @RabbitListener(queues = {"app.drone.queue"}) public void receivedDroneMessage(final String message, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long tag) throws IOException { try { - GPModel model = objectMapper.readValue(message, GPModel.class); + GPModel model = objectMapper.readValue(message, GPModel.class); messageService.insert(model); // GPS 정보 DB 동기화 처리 - -// channel.basicAck(tag, false); + +/* channel.queueDeclare(message, true, false, false, null); rabbitMQ 서버 강제 종료 등 Queue가 유실되는 것을 방지하기 위해 disk에 Queue를 적재 ( Queue 영속성 ) + -> 이 옵션 설정시 Queue의 유실은 방지할 수 있으나 Consumer Ack의 응답률이 절반으로 떨어지게 되고 , Unacked -> Ready로 되돌아가는 Queue가 생김 */ + + channel.basicAck(tag, true); // channel 유지를 위해 Consumer -> Producer로 수신 확인 신호를 자동으로 전송 + +// channel.exchangeDeclare(message, "direct", true); Queue Exchange 방식 지정(binding 안되어있으면 설정) + + + + } catch (RuntimeException e) { channel.basicReject(tag, false); }