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

jyyoon0615님의 프로필 이미지
jyyoon0615

작성한 질문수

실습으로 배우는 선착순 이벤트 시스템

발급가능한 쿠폰개수를 1인당 1개로 제한하기

kafka 사용 이유

작성

·

301

0

안녕하세요,

궁금한 내용이 생겨 기존에 질문들을 살펴보고 제가 이해한 것이 맞는지 확인차 질문드립니다.

 

  • redis의 싱글스레드 특성으로 100개 발급에 대한 race condition 해결 -->

    그러나 insert 시 DB 처리량에 부하가 발생할 수 있음

  • kafka 미들웨어를 통해 100개의 쿠폰 저장 이벤트를 보관해두었다가 컨슈머에서 원할때 꺼내어 처리할 수 있는 여지를 주어 처리량 부하를 분산시킬 수 있음

    • ex) 쿠폰 발급은 당장 안해도 되니, kafka에 이벤트만 잘 발행되어 있다면 DB 작업량이 적은 새벽에 꺼내서 저장해도 됨

 

이렇게 이해했는데, 맞을까요?

답변 2

0

최상용님의 프로필 이미지
최상용
지식공유자

윤지용님 안녕하세요.
이해하신것이 맞습니다. 처리량을 조절하는 것이 사용이유였습니다.

감사합니다.

0

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

윤지용님께서 질문하신 Kafka 사용 이유와 관련해서는, 주요 포인트를 잘 이해하셨습니다. Kafka를 사용하는 주된 이유 중 하나는 확실히 데이터 처리의 유연성과 부하 분산에 있습니다. Kafka를 활용함으로써, 많은 양의 이벤트(예: 쿠폰 발행 요청)를 바로 처리하지 않고 큐에 보관했다가, 시스템의 부하가 적은 시기에 또는 자원이 더욱 충분할 때 일괄적으로 처리할 수 있게 됩니다. 이는 데이터베이스에 대한 부하를 효과적으로 관리하고, 전체적인 시스템 성능과 안정성을 향상시키는 데 도움을 줍니다.

윤지용님께서 이해하신 내용은 매우 정확하며, Kafka를 사용함으로써 얻을 수 있는 다양한 이점 중 일부를 잘 요약해주셨습니다.

관련하여 여러 질문과 답변 사례들이 있으나, 윤지용님의 이해를 돕기 위해 가장 관련성 높은 내용을 다룬 이벤트 처리를 위한 여러가지 방식을 참고하시길 추천드립니다. 이 답변에서도 Kafka 사용 이유와 그 이점에 대해 설명하고 있으며, 실제 적용 사례에 대한 이해를 높일 수 있습니다.

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

jyyoon0615님의 프로필 이미지
jyyoon0615

작성한 질문수

질문하기