해결된 질문
작성
·
10
0
카프카 메시지 저장 방식에 대한 질문
카프카에 대해서 잘 알지 못할때 카프카에 메시지가 저장되어 편리하다는 이야기를 들었습니다. 그래서 AWS SQS에서 카프카로 전환하면 별도의 메시지 저장소가 필요 없을 것 같았는데, 강의를 들어보니 장기 보관이 필요하면 결국 따로 저장해야 하는 것 같더라고요.
질문:
장기 보관이 필요한 메시지는 별도 저장소(DB, S3 등)에 저장하시나요?
카프카 자체 저장만으로 충분한 경우와 별도 저장이 필요한 경우를 어떻게 구분하시나요?
답변 2
0
안녕하세요 dlkfjan님 질문 남겨주셔서 감사합니다.
우선 Kafka는 잠시 메시지를 저장하는 용도로만 사용하는것이 맞습니다. 영구적인 데이터를 저장하는 용도로는 사용하지 않는것이 맞아요. 하지만 질문에 대해서는 무언가 저장공간이 필요하신거 같네요.
장기 보관이 필요한 메시지는 별도 저장소(DB, S3 등)에 저장하시나요?
보통은 DB에 합니다. 상황에 따라 다르겠지만, 저는 보통 히스토리 데이터에 대해서 관리를 했었습니다.
예를들면 admin 툴을 통해 무언가 수정을 하였을 떄의 누가 수정했는지 그에 대한 히스토리 저장
어디에 저장하는지는 사실 원하시는 곳에 저장하시면 좋을꺼같가요. 기준은 딱히 없고 현재 구축되어 있는 환경에서 가장 적용하기 편한곳으로 저장하면 되지 않을까 싶습니다.
카프카 자체 저장만으로 충분한 경우와 별도 저장이 필요한 경우를 어떻게 구분하시나요?
매우 단순합니다. 처리하는 이벤트를 기록하고 영구적으로 보관해야 하는 경우와 아닌 경우를 구분하시면 됩니다.
예를들어서 단순하게 무언가 데이터를 처리하기 위한 용도의 이벤트면 굳이 영구적으로 저장 할 필요는 없죠. 하지만 영구적으로 무언가 수정했다는 이력과같은 부분을 관리하기 위해서는 별도 저장이 필요하다고 생각합니다.
왜냐하면 무언가 수정했다는 이력은 추후에 회사나 팀 측면에서 문제가 되었을 떄 추적이 가능하기 떄문입니다. 그래서 예전 과거의 행위를 들춰봐야 하는 경우 별도의 저장공간을 두는게 좋지 않을까 싶네요.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. dlkfjan님.
카프카(Kafka)의 메시지 저장 방식에 대해 궁금해하셨군요. 카프카는 기본적으로 메시지 브로커로, 실시간 데이터 스트리밍을 지원하며 메시지를 일정 기간 동안 유지할 수 있습니다. 하지만 카프카 자체만으로 모든 메시지에 대한 장기 보관을 보장하기는 어렵습니다. 아래에서 질문하신 두 가지 사항에 대해 간단히 설명드리겠습니다.
장기 보관이 필요한 메시지의 저장:
카프카 자체 저장과 별도 저장 필요의 구분:
카프카에서 데이터를 얼마나 오랫동안 보관할지는 브로커 설정에서 retention period
로 관리할 수 있지만, 이는 보통 며칠에서 몇 주 정도로 설정되곤 합니다. 장기 보관이 필요한 데이터는 카프카를 통해 전달받은 후, 별도의 스토리지 솔루션으로 이동시켜야 합니다.
관련된 추가적인 정보로는 다음 유사한 질문과 답변을 참조하시면 도움이 되실 것입니다:
이와 같은 내용들이 Kafka의 저장 방식과 활용에 대한 전반적인 이해를 돕는 데 유용할 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.