In Memory Broker란?
- Spring websocket에서 STOMP 프로토콜을 사용해서 웹소켓 기능을 구현할 때 STOMP는 Message Broker가 필요하다.
- 별다른 설정 없이 Spring 환경에서 STOMP 프로토콜을 사용한다면 메세지 브로커로 In Memory Broker를 사용하게 된다.
In Memory Broker 단점
- 세션을 수용할 수 있는 크기가 제한되어 있다.
- 장애 발생 시 메세지의 유실될 가능성이 높다.
- 따로 모니터링하는 것이 불편하다.
외부 메세지 브로커
- Kafka, RabbitMQ, ActiveMQ 등에서는 STOMP 프로토콜의 Message Broker 기능을 제공해준다.
- 이들의 힘을 빌려 In Memory 브로커 대신 잘 만들어진 STOMP 전용 외부 브로커를 사용하는 것이 더 좋다.
STOMP 전용 외부 브로커 장점
- 세션을 수용할 수 있는 크기가 크다.
- 영구적이며 문제가 발생했을 시 재시도가 가능하여 복구가 가능하다.
- 간편하게 모니터링을 할 수 있다.