inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

kafka 에 대한 질문이 있습니다!

244

작성자 없음

작성한 질문수 0

0

kafka 는 대용량 데이터 처리에 능하다고 알고있습니다. 강사님에게 kafka 에 접하고나서 이리저리 궁금한 점이 생겨서 질문을 하게되었습니다.

만약에 kafka 를 통한 배치작업을 할 경우 데이터를 모았다가 send 한다면 Producer 에서 모았다가 Kafka Broker 로 전송후 Consumer 에서 이를 poll 해서 Redis 에 저장을 해야하는데,
send 하는 트래픽이 많아진다면 Kakfa 에서 오류가 생겨 메세지가 유실될 가능성이 없는건가요?? 

architecture JPA spring-boot spring-cloud Kafka msa

답변 1

1

Dowon Lee

안녕하세요, 이도원입니다. 

카프카의 도입 여부는 서비스의 구성 및 도메인의 요구사항에 따라 달라질 수 밖에 없다고 생각합니다. 일괄처리의 목적으로 redis에 저장하고 그 후에 데이터베이스에 처리하는 프로세스를 생각하신다면, 카프라 클러스터를 구축하는 것이 효율적이라고 생각합니다. 시스템에서 메시지에 저장과 보관 및 사용에 대한 의존성을 최소화하고 거래시 발생되는 데이터를 카프카 브로커에 전달해 주는 작업만 집중하면 나머지는 카프카에서 처리할 수 있기 때문에 효율성이 증가하게 될거라 생각합니다.

강의에서는 카프카 클러서트를 단일 서버로 구성하였지만, 실무에서 그렇게 사용하기 보다는 3대 이상의 카프카 브로커와 3대 이상의 Zookeeper 서버를 구성해서 사용하는 것을 권장하기 때문에, 하나의 토픽에 문제가 생겨도 다른 토픽의 파티션에 데이터가 보관되어 있기 때문에, 데이터 유실에도 안전하다고 생각합니다. 

그리고, 카프카 브로커에서 직접 배치 작업을 처리하는 것 보다는 Confluent의 Kafka 제품군중에 ksqlDB나 Kafka Stream을 사용하시면, 대용량의 데이터를 데이터베이스에 바로 보내거나 스트리밍 서비스를 구축해 보실 수도 있습니다. 참고해 보시기 바랍니다. 

https://www.confluent.io/product/ksql/

https://www.confluent.io/stream-processing/

감사합니다. 

kafka 업데이트 강의 듣고 시포요

0

112

2

강의 교안

0

103

2

마이크로서비스간 통신 시, 인증 처리

0

112

2

api gateway 에서 인증 처리

0

76

1

섹션 19 질문드립니다

0

83

2

강의 자료 업데이트

0

104

2

부하분산 강의 섹션

0

65

1

강의자료는 어디에서?

0

98

2

강의 자료는 어디서 다운 받을 수 있나요?

0

131

2

전체 사용자 조회시 오류

0

65

1

혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??

0

118

2

학습 방향

0

105

2

카프카 커넥터 사용 목적 문의

0

90

2

kafka 강의

0

117

2

서비스 디스커버리 종류

0

90

2

강의 자료에 대해서 궁금해요

0

125

2

GlobalFilter, LoggingFilter가 동작하지 않습니다.

0

94

2

Kafka Source Connect 버전 에러

0

95

2

소스커넥터는 사용안한 거 맞죠?

0

84

2

강의자료 업데이트 문의

0

99

2

강의에서 BCryptPasswordEncoder 에 역할(5-2)

0

63

1

강의 업데이트 계획이 궁금합니다.

0

120

2

MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)

0

168

2

어떤 것이 업데이트 된 건가요?

0

169

2