2014-04-25 2 views
0

centos에서 rabbitmq 버전 3.2.4를 사용하고 있습니다. 6. 작업 대기열로 사용 중이며 대기열에서 청취하는 가입자가 몇 명 있습니다. 각 가입자는 많은 양의 데이터를 처리합니다. 따라서 각 메시지를 처리하는 데 30 분 이상 걸릴 수 있습니다. 메시지는 구독자가 실행해야하는 것을 요약 한 작업 개체 일뿐입니다.rabbitmq가 메시지를 다시 보내지 못하도록하십시오.

rabbitmq이 약 25 분 정도 후에 다른 가입자에게 동일한 메시지를 재전송 할 때 문제가 발생합니다. 이전 가입자는 여전히 메시지를 처리하고 있습니다.

첫 번째 가입자가 사망하지 않고 처리 중일 때 rabbitmq가 메시지를 다시 보내는 것을 방지하려면 어떻게해야합니까? 나는 아무 쓸모없이 하트 비트 플래그를 설정/해제하려고 시도했다.

+0

지난 밤에 좀 더 파고 들었습니다. 구독자가 Q (아마도 소켓 시간 제한, 내가 그림)에 대한 연결을 잃어 가고있는 것 같습니다. –

답변

0

모든 요청에 ​​메시지 시퀀스 번호를 추가하여 재전송 문제를 방지하는 것이 좋습니다. 메시지를받을 때 메시지를 다시 보내고 있는지 확인합니다.