이전 프로젝트에서는 Spring의 스케줄링을 활용하여 polling 방식으로 ETL 서비스를 개발했습니다. 이때 polling 방식의 한계로 많은 불편을 겪었고, 팀 내부적으로 다른 기술 스택을 고민하다 Kafka를 도입하기로 결정했습니다.메시징 큐 서비스(Kafka,
이전 포스팅에서는 개념적인 설명을 했습니다. 이번 포스팅에서는 Kafka CDC를 통해서 어떻게 ETL서비스를 구현했는지 코드상으로 보여드리면서 설명하겠습니다. Window 환경에서 서비스들을 실행시켜야해서 처음에는 Kafka 서비스들을 실행시키기위한 파일을 다운로드
Kafka를 통해 데이터를 Spring Boot 프로젝트에서 Consuming 하면서 3개의 데이터베이스를 연결해야했습니다. 이때 여러 데이터베이스의 트랜잭션을 유지하기 위해 JTA를 사용하여 다중 데이터소스를 설정한 과정을 정리하였습니다.처음에 3개의 데이터베이스를
MultiDataSource를 설정하면서 JTA를 함께 사용하여 여러 DB에 대한 API 요청을 하나의 트랜잭션으로 처리하는 기능을 개발했습니다. 개발 과정에서 H2 데이터베이스로 예제 코드를 작성했지만, 실제 서비스에서는 MSSQL을 사용해야 했습니다. 이 과정에서
Local PC에서 Kafka 환경을 구축하고나서 개발서버에 똑같이 Kafka 환경을 구축하던 중 발생한 에러로 분명 똑같이 실수한거 없이 작업을 하였는데도 에러가 발생하였습니다... 앞선 포스팅에서 설명했던 순서로 환경을 구축하던 중 Postman을 통해 Debez
kafka CDC를 통해서 데이터베이스의 변경사항을 받을 때, 타겟 테이블의 생성, 수정, 삭제 이벤트를 모두 받게되는데 이로 인해 불필요한 메시지가 계속해서 발생하는 문제가 있었습니다. 이를 위해 Debezium connector의 Message Filtering