ActiveMQ Artemis 또는 Spring JMS 클라이언트가 에러시 다른 메시지를 사용하지 않도록 설정하는 방법은 무엇입니까?Artemis : 오류 발생시 메시지 소비를 중단하는 방법?
<addresses>
<address name="SimplePointToPoint">
<anycast>
<queue name="SimplePointToPoint"/>
</anycast>
</address>
</addresses>
<address-settings>
<address-setting match="SimplePointToPoint">
<max-delivery-attempts>-1</max-delivery-attempts>
</address-setting>
</address-settings>
이 내 소비자의 코드입니다 : 다음과 같이
내가 내 브로커를 구성한 나는 소비자가 message1
을 처리 할
@JmsListener(destination = "SimplePointToPoint")
public void consumeMessage(Message<String> message) {
if (message.getPayload().contains("error"))
throw new RuntimeException();
log.info("received message: {}", message.getPayload());
}
message1
, message2 with error
및 message3
를 보내고 영원히 다시 시도하십시오 message2 with error
. message3
은 message2 with error
이 성공적으로 소비 될 때까지 처리하지 않아야합니다. 실제로 일어나는 일은 재 시도간에 message3
이 소비된다는 것입니다. 이 동작을 변경하는 방법? 어떤 아이디어?
당신의 대답은 아파치 ActiveMQ를 5.x를 적용되지만 문제는 아파치 ActiveMQ를 아르테미스 브로커에 대해이었다. –