강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

yso829612님의 프로필 이미지
yso829612

작성한 질문수

웹소켓/STOMP 채팅서비스(spring, vue, redis)

websocket과 stomp 비교

메시지 브로커 선택에 관한 질문

작성

·

5

·

수정됨

0

  1. 안녕하세요, 강의에서는 메시지 브로커용으로 redis를 사용하셨는데, redis 외에도 rabbitmq나 카프카 같은 것들도 사용되는 것으로 알고있습니다. 그 중에서 특별히 redis를 사용한 이유가 있는지 궁금합니다.

  2. 그리고 무중단 배포 시 스프링 내장 브로커를 사용하면 서버 재실행 시 구독 정보가 초기화되기에 메시지 브로커를 도입하려고 하는데 이때는 셋 중에 어떤 것을 사용하면 좋을지 궁금합니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. yso829612님.

Redis, RabbitMQ, 그리고 Kafka는 모두 메시지 브로커로 사용되지만, 각각의 특성과 장점이 다르기에 상황에 맞게 선택이 필요합니다. 질문하신 두 가지를 중심으로 답변 드리겠습니다.

  1. Redis 선택 이유:

    • 속도: Redis는 메모리 기반 데이터 저장소로 매우 빠른 처리 속도를 자랑합니다. 이는 실시간 데이터 처리 및 가벼운 메시지 전송에 적합합니다.
    • 설치 및 관리 용이성: Redis는 설치와 초기 설정이 간단하고, 유지보수 부담이 상대적으로 낮습니다.
    • Pub/Sub 기능: 단순한 publish/subscribe 기능이 필요한 경우 Redis의 간단한 구조가 유리할 수 있습니다.
  2. 무중단 배포 시 메시지 브로커 선택:

    • Redis: 간단한 Pub/Sub의 경우 Redis는 설정이 쉬우며, 빠른 데이터 전송이 요구되는 실시간 서비스에 적합합니다. 그러나 데이터 영속성과 복잡한 메시지 큐잉이 필요하다면 한계가 있을 수 있습니다.
    • RabbitMQ: 안정성과 메시지의 영속성이 중요하다면 RabbitMQ가 유용할 수 있습니다. 특히 복잡한 라우팅이 필요하거나, 다양한 메시지 전달 기능을 필요로 할 때 강력함을 발휘합니다.
    • Kafka: 대량의 데이터 처리와 높은 안정성을 요구하는 경우 Kafka가 적합합니다. Kafka는 이벤트 스트리밍을 위한 분산형 시스템으로, 영속성이 중요하고 대규모 데이터를 처리해야 할 때 권장됩니다.

관련된 유사한 주제의 질문과 답변에서 더 많은 힌트를 얻으실 수 있습니다:
- 레디스 pub/sub 질문: Redis 사용 이유에 대해 쉽고 명확하게 설명합니다.
- 아키텍처 질문입니다: 메시지 브로커 활용 시의 고려사항에 대한 추가 정보입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

yso829612님의 프로필 이미지
yso829612

작성한 질문수

질문하기