>  기사  >  Spring Integration 어댑터를 사용하여 기본 MQTT 및 STOMP 연결 처리

Spring Integration 어댑터를 사용하여 기본 MQTT 및 STOMP 연결 처리

WBOY
WBOY앞으로
2024-02-05 22:00:101162검색
질문 내용

mqtt 또는 Stomp를 통해 도착하는 메시지를 처리하기 위한 몇 가지 스프링 통합 프로세스가 있습니다. 이를 위해 어댑터 mqttpahomessagedrivenchanneladapterstompinboundchanneladapter를 사용합니다. mqtt의 경우 스트림의 엔드포인트에서 예외가 발생하면 어댑터가 연결을 닫고 더 이상 메시지를 수신하지 않는 것으로 나타났습니다. 마찬가지로 프록시를 다시 시작하면 해당 프록시에 대한 연결이 다시 설정되지 않습니다.

예외를 처리하기 위해 오류 채널 이름을 기본 "errorchannel" 어댑터에서 Spring이 처리하는 값으로 설정합니다. 우리의 의도는 기본 연결을 닫지 않고 예외만 기록하는 것입니다. 프로세스 전반에 걸쳐 예외를 처리하는 올바른 방법입니까?

재연결 문제와 관련해 전송 프로토콜마다 다른 방법이 있습니다.

  • mqtt의 경우 connectionoptionsautomaticreconnect 设置为 true:
으아악
  • stomp의 경우 taskscheduler 设置为 reactornettytcpstompclient를 문맥에 넣습니다:
으아악

이 문제를 해결하는 가장 좋은 방법인가요?


정답


예, errorchannel 选项是抑制向 mqtt 客户端抛出异常的好方法。不必是全局 errorchannel ,它可能在许多不同的地方使用。 setautomaticreconnect(true)은 인바운드 채널 어댑터에 정말 권장됩니다.

reactornettytcpstompclienttaskscheduler 不适用于重新连接。请参阅其 javadocs。我认为重新连接逻辑在 reactornettytcpstompclient에서 사용되지 않음:

으아악

다른 변형을 통해 다시 연결되는 경우:

으아악

위 내용은 Spring Integration 어댑터를 사용하여 기본 MQTT 및 STOMP 연결 처리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제