본문 바로가기

Lang

[Java]spring-cloud-stream mqtt binder

spring-cloud-stream 에서 mqtt binder 이용해본거 간단 메모. 구현 예는 조만간 정리해서 기록해보겠음

  • spring-cloud-stream 에 kafka 와 rabbitMQ binder 구현체는 제공되는데 mqtt binder 는 없어서 고민하다가 그나마 좀 간단한 spring integration 이용한 샘플이 있길래 참고해서 기능 구현은 했었다. 그런데, 뒷간 들어갈 때와 나올 때 사람 맘 달라진다고 막상 돌아가는거 보고 나니 기존 kafka 와 rabbitmq binder 이용해서 구현한 것과 일관성이 없는게 영 찜찜.
  • https://github.com/sheunglaili/spring-cloud-stream-binder-mqtt 에 어떤 개인 개발자가 공개한 바인더 구현체가 있긴 한데 설명이 그리 충분하진 않다. 내려 받아서 어찌 어찌 jar 만들어 사용해봤는데 안되길래 그냥 소스들 직접 기존 프로젝트에 꾸겨 넣은 후 약간 수정(왜 토픽 지정이 안 먹는지 모르겠는데 토픽 설정값 아무리 해도 못 읽어들여서 그 부분 대충 수정) 해서 겨우 성공.
  • https://github.com/spring-cloud/spring-cloud-stream/issues/1908 이 이슈 글 앞 작업 시작할 때 보긴했는데 깜빡 잊고 있다가 mqtt  랑 rest api 테스트하면서 막아놨던 카프카 기존 설정 풀고 실행해보니 딱 이 글에 나온 에러 발생 ㅜㅠ 글에 보면  MqttBinderConfiguration 에서 @configuration 애노테이션 제거하고 대신 spring.binders 파일에 MqttBinderConfiguration 위치를 지정해주면 된다고 하는데 ... 안된다. 오전 내내 별 짓 다하다가 이제 막 해결. 파일 위치를 resources/META-INF/spring.binders 로 해주니 되네요.