2016-12-02 4 views
1

우리의 응용 프로그램에는 RabbitMq가 사용됩니다. 몇 가지 대기열에 대해 누적되지 않은 상태로 누적 된 수백 개의 메시지가 있으며 예상치 못한 종료로 인해 TTL이 작동하지 않습니다. 청취자는 살아 있지 않았습니다.메시지를 미사용에서 준비로 푸시하는 방법 rabbitmq

이제 비즈니스상의 이유로 대기열을 비울 수 없습니다. 대기 상태의 메시지를 수동으로 준비 상태로 푸시하고 싶습니다.

??

감사합니다. 준비에 unack'd에서 메시지를 이동하는 2 가지 방법이 있습니다

답변

1

:

1) 당신의 소비자에서 메시지를 ACK는

2) 개방을 들고 소비자를 종료

옵션 # 1은 실제로 옵션이 아닙니다. 메시지가 unack'd에 갇히게되면 소비자가 메시지를 잃어 버리고 더 이상 확인할 수 없기 때문입니다.

이것은 일반적으로 # 2를 남겨 둡니다. 이전에 해당 대기열에 연결된 모든 소비자를 종료해야합니다. 메시지가 unack'd되고 소비자가 떨어지면 RMQ는 준비 상태로 메시지를 다시 푸시합니다.

소비자를 종료하고 다시 시작하면 메시지가 다시 unack'd 상태가되며 소비자의 오류를 일으키는 원인을 파악하고 코드를 수정 한 다음 다시 시작해야합니다.

+1

세 번째 방법은 무엇입니까 ?? – user3123372