2016-08-08 6 views
0

인 경우 MQTT가 재시도 함 SOAP 엔드 포인트를 통해 수신 된 메시지의 데이터 일부를 전달하는 MQTT 콜백을 가지고 있지만 SOAP 엔드 포인트에 오류가 발생하면 해당 메시지는 손실되어 최종 소비자에게 도달하지 않습니다.messageArrived 메소드의 예외가

다른 QOS 및 배달 토큰을 알고 있지만 예외를 트리거 한 후 해당 메시지를 실제로 다시 시도하는 데 실제로 도움이되는지 확실하지 않습니다. 메시지를 나중에 다시 시도 할 수 있도록 항목에 "반환"할 수 있습니까? 아니면 완전한 메시지를 올바르게 처리 할 수 ​​있도록 할 수 있습니까? 메이븐을 통해 내가 이클립스 (Eclipse) PAHO를 사용하고 클라이언트 측에

: https://repo.eclipse.org/content/repositories/paho-releases

서버 측에서 : 어떤 다른

Debian GNU/Linux 8.5 (jessie) 
mosquitto 1.3.4-2 (MQTT version 3.1/3.1.1 compatible) 

이 저장소에서

<dependency> 
     <groupId>org.eclipse.paho</groupId> 
     <artifactId>org.eclipse.paho.client.mqttv3</artifactId> 
     <version>1.0.1</version> 
    </dependency> 

제공해야합니까?

답변

1

아니오, 일단 클라이언트에 전달되면 메시지는 MQTT 시스템에서 완전히 사라집니다.

모든 스토리지를 빌드하고 MQTT 클라이언트 응용 프로그램에 논리를 다시 시도하여 다운 스트림 시스템의 모든 오류를 처리해야합니다.

+0

알았어, 알 겠어 ... 그런 제안있어? 아마 주제에 다시 보내고 있니? – gvasquez

+0

아니요, SOAP 엔드 포인트가 다운 된 경우 클라이언트에게 즉시 메시지를 재전송합니다. 메시지와 메시지 배달 속도를 잃지 않는 것이 얼마나 중요한지에 달려 있습니다. – hardillb

+0

배달 속도는 매우 느릴 수 있으며 5 분마다 한 번씩 따라 잡을 수 있습니다 (최대 60 개까지 허용 될 수 있지만 메시지 손실은 없습니다). – gvasquez