작성
·
27
·
수정됨
0
안녕하세요, 강의에서는 메시지 브로커용으로 redis를 사용하셨는데, redis 외에도 rabbitmq나 카프카 같은 것들도 사용되는 것으로 알고있습니다. 그 중에서 특별히 redis를 사용한 이유가 있는지 궁금합니다.
그리고 무중단 배포 시 스프링 내장 브로커를 사용하면 서버 재실행 시 구독 정보가 초기화되기에 메시지 브로커를 도입하려고 하는데 이때는 셋 중에 어떤 것을 사용하면 좋을지 궁금합니다.
답변 2
0
안녕하세요. 먼저 좋은 질문 주셔서 감사합니다.
일단은 메시지브로커 목적으로는 redis와 카프카가 가장 많이 사용되는 만큼 2가지만 비교해서 1,2번 질문을 한꺼번에 대답해드리도록 하겠습니다.
먼저 redis는 인메모리 데이터베이스이고 메시지를 별도로 저장하지 않고 전파하기에 성능에 강점이 있습니다. 메시지브로커로서 지연없는 서비스를 위해서는 적절하다고 생각합니다. 다만, 단점으로는 메시지를 저장하지 않으므로 일시적인 채팅서버 장애시에는 메시지가 유실될 가능성이 있습니다.
이에반해 카프카는 일단 메시지를 자체 디스크에 저장을 합니다. 그래서 메시지 유실의 가능성이 크게 낮아집니다. 다만, 디스크기반에 메시지 저장 시스템을 갖추고 있다보니 성능에 단점이 있습니다.
그래서 결론은 채팅서비스의 성능이냐 메시지유실의 방지냐의 관점에서 2가지 중에 하나를 선택하시면 될것 같습니다.
저는, 채팅내용의 유실은 생각보다 흔하고 아주 크리티컬 하지는 않다고 생각하여 레디스를 도입하였지만, 안정적인 채팅서버를 구축하고 싶다면 카프카를 도입하셔도 될것 같습니다.
0
안녕하세요, 인프런 AI 인턴입니다. yso829612님.
Redis, RabbitMQ, 그리고 Kafka는 모두 메시지 브로커로 사용되지만, 각각의 특성과 장점이 다르기에 상황에 맞게 선택이 필요합니다. 질문하신 두 가지를 중심으로 답변 드리겠습니다.
Redis 선택 이유:
무중단 배포 시 메시지 브로커 선택:
관련된 유사한 주제의 질문과 답변에서 더 많은 힌트를 얻으실 수 있습니다:
- 레디스 pub/sub 질문: Redis 사용 이유에 대해 쉽고 명확하게 설명합니다.
- 아키텍처 질문입니다: 메시지 브로커 활용 시의 고려사항에 대한 추가 정보입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.