인프런 커뮤니티 질문&답변
작성자 없음
작성자 정보가 삭제된 글입니다.
kafka 에 대한 질문이 있습니다!
작성
·
237
0
kafka 는 대용량 데이터 처리에 능하다고 알고있습니다. 강사님에게 kafka 에 접하고나서 이리저리 궁금한 점이 생겨서 질문을 하게되었습니다.
만약에 kafka 를 통한 배치작업을 할 경우 데이터를 모았다가 send 한다면 Producer 에서 모았다가 Kafka Broker 로 전송후 Consumer 에서 이를 poll 해서 Redis 에 저장을 해야하는데,
send 하는 트래픽이 많아진다면 Kakfa 에서 오류가 생겨 메세지가 유실될 가능성이 없는건가요??
답변 1
1
안녕하세요, 이도원입니다.
카프카의 도입 여부는 서비스의 구성 및 도메인의 요구사항에 따라 달라질 수 밖에 없다고 생각합니다. 일괄처리의 목적으로 redis에 저장하고 그 후에 데이터베이스에 처리하는 프로세스를 생각하신다면, 카프라 클러스터를 구축하는 것이 효율적이라고 생각합니다. 시스템에서 메시지에 저장과 보관 및 사용에 대한 의존성을 최소화하고 거래시 발생되는 데이터를 카프카 브로커에 전달해 주는 작업만 집중하면 나머지는 카프카에서 처리할 수 있기 때문에 효율성이 증가하게 될거라 생각합니다.
강의에서는 카프카 클러서트를 단일 서버로 구성하였지만, 실무에서 그렇게 사용하기 보다는 3대 이상의 카프카 브로커와 3대 이상의 Zookeeper 서버를 구성해서 사용하는 것을 권장하기 때문에, 하나의 토픽에 문제가 생겨도 다른 토픽의 파티션에 데이터가 보관되어 있기 때문에, 데이터 유실에도 안전하다고 생각합니다.
그리고, 카프카 브로커에서 직접 배치 작업을 처리하는 것 보다는 Confluent의 Kafka 제품군중에 ksqlDB나 Kafka Stream을 사용하시면, 대용량의 데이터를 데이터베이스에 바로 보내거나 스트리밍 서비스를 구축해 보실 수도 있습니다. 참고해 보시기 바랍니다.
https://www.confluent.io/product/ksql/
https://www.confluent.io/stream-processing/
감사합니다.





