강의

멘토링

로드맵

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

Kyung Lin님의 프로필 이미지
Kyung Lin

작성한 질문수

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

Orders Microservice 수정 - Order Kafka Producer

kafka sink connector 관련 질문드립니다

작성

·

465

0

안녕하세요, 도원님.

좋은 강의 덕분에 MSA 관련 지식이 많이 느는 것 같아 감사합니다.

 

다름이 아니라, kafka sink connector 쪽 관련해서 문의드리고 싶은 내용이 있어 질문을 올리게 되었습니다.

confluent 의 kafka sink connector 공식 문서를 봤을 때, sink connector 는 at least once delivery 를 보장한다고 하는데, 만약 그런 경우가 발생하면 실제로 같은 데이터가 2번 적재되는 현상이 생길 거 같습니다. 

 

이런 경우를 위해 따로 처리를 하는 로직을 넣어야하는지, 아니면 그냥 sink connector 내부에서 밀어넣었는데 에러가 나고 이를 넘기는 방향으로 처리를 하는지 여쭤보고 싶습니다.

퀴즈

Order 서비스와 Catalog 서비스 간에 Kafka를 사용하여 주문 수량 정보를 동기화하는 주된 목적은 무엇일까요?

각 서비스의 독립 데이터베이스 성능을 향상시키기 위해

사용자 인증 정보를 Catalog 서비스로 안전하게 전송하기 위해

주문 발생 시 Catalog 서비스의 재고 수량을 실시간에 가깝게 업데이트하기 위해

Order 서비스와 Catalog 서비스 간의 직접적인 RESTful API 호출을 완전히 대체하기 위해

답변 1

2

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

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

kafka sink connector를 생성하실 때, insert.mode를 이용하여 insert를 할 지 update를 할 지 선택할 수 있습니다. 

https://docs.confluent.io/kafka-connect-jdbc/current/sink-connector/sink_config_options.html

update를 하실 때의 기준의 기존 데이터의 저장 된 시간과 차이가 있을 경우에 업데이트 하게 되는데, 이를 위해 update date 컬럼을 같이 지정해 주시면 됩니다. 

감사합니다. 

Kyung Lin님의 프로필 이미지
Kyung Lin

작성한 질문수

질문하기