개요 이번에는 Kafka Connect을 이용하여 Spring Boot에서 데이터를 보내면 MySQL에 저장하는 로직을 구현해보려 합니다. 멀티 서버 환경에서 Kafka Connect을 이용하여 순차적으로 처리하여 동시성 문제를 해결할 수 있고 비동기적으로 처리하여 성능 향상을 기대할 수 있습니다. Spring Boot - Producer Spring Boot에서 MySQL에 DB에 저장하기 위해서는 정해진 패턴대로 메시지를 전송해야 합니다. 정해진 패턴이란 Schema 와 payload로 구성되어 있습니다. Schema는 Table의 구조를 나타내고 payload는 실제 데이터를 나타냅니다. 스키마를 참고하여 payload의 데이터를 Table에 넣는 식 입니다. 이전 글에서 본 Producer 구조와..
개요 이번에는 Kafka Source Connect와 Kafka Sink Connect를 등록해보려 합니다. Kafka Source Connect는 MySQL에 변경 사항을 감지하여 Kafka Topic에 데이터를 보내는 역할을 합니다. Kafka Sink Connect는 Topic에 저장된 메세지를 MySQL에 보내 저장하는 역할을 합니다. 이를 위해 Kafka Connect와 MySQL에 접근하기 위해 JDBC Connector와 MySQL Connector 설정되어야 합니다. 이는 전글을 참조하면 좋을 거 같습니다. https://cladren123.tistory.com/205 Kafka Connect 설치 & 실행 & MySQL 설정 개요 이번에는 Windows에 Kafka Connect 설치해보..
개요 이번에는 Windows에 Kafka Connect 설치해보려 합니다. Kafka Connect는 Apache Kafka 일부로 제공되는 프레임워크로 스트림 데이터를 외부 시스템과 연결하는데 사용합니다. Kafka Connect는 Kafka Connect Source 와 Kafka Connect Sink 가 있습니다. Kafka Connect Source : 외부 시스템의 데이터를 가져와 메시지 형태로 Kafka Topic에 저장합니다. 예시) RDBMS에서 변경 사항을 실시간으로 Kafka에 전송할 때 쓰입니다. Kafka Connect Sink : Topic에 저장된 메세지를 구독하고 있는 외부 시스템으로 전달합니다. 예시) Kafka Topic에 있는 데이터를 Elasticsearch, RDBM..
개요 이번에는 Kafka와 Spring Boot를 연동해보려 합니다. Spring Boot에 메시지를 전송하는 Producer, 메시지를 받는 Consumer의 코드를 추가하여 Kafka를 통해 메시지를 주고 받게 해볼 겁니다. 이 글은 Kafka Consumer 구현, Kafka Producer 구현, 테스트 순으로 정리했습니다. 시작하기 전 Spring Boot에 Producer, Consumer 코드를 추가하기 전에 Kafka에 Topic을 하나 생성해야 합니다. 또한 테스트를 하려면 ZooKeeper와 Kafka를 실행시켜야 합니다. ZooKeeper와 Kafka를 설치하고 실행하는 글은 이전에 정리한 글을 참조하시면 도움이 될 것 입니다. https://cladren123.tistory.com/..
개요 이번 글에서는 Kafka를 Windows 환경에서 설치하고 간단한 테스트를 통해 잘 실행되는지 확인해 보겠습니다. Kafka 설치 Kafka 홈페이지 Kafka를 다운받기 위해 홈페이지로 이동합니다. http://kafka.apache.org Apache Kafka Apache Kafka: A Distributed Streaming Platform. kafka.apache.org Kafka 다운로드 우측 상단 위에 DOWNLOAD KAFKA 를 클릭해 다운로드 페이지로 이동합니다. 2.X.X 버전의 Scala 2.13을 다운 받습니다. (3 버전 때에는 버그가 있어서 동작이 잘 안될 수도 있다고 합니다.) tgz 압축 파일 해제 tgz 파일을 C 드라이브에서 압축 해제 합니다. (바탕화면에 풀었다가..
Apache Kafka에 대해 정리 글을 써보려 합니다. Kafka 란? 카프카란 분산형 이벤트 스트리밍 플랫폼 입니다. 카프카는 여러 서버나 노드에 데이터와 처리를 분산시켜 가용성과 확장성이 높은 특징이 있습니다. 이러한 특성으로 카프카는 서버 간의 비동기 데이터 교환을 용이하게 해주는 메시징 시스템으로 활용될 수 있으며 하루에 수 조개의 이벤트 처리를 가능하게 합니다. 즉, 카프카는 플랫폼 내에 다양한 서비스 간의 데이터 흐름을 실시간으로 제어해 서비스들을 연계하는 중추 역할을 수행합니다. 이러한 카프카는 초기에는 대용량 로그 데이터 처리를 위해 개발되었으며 현재는 다양한 분야에서 실시간 데이터 파이프라인 구축에 널리 사용되고 있습니다. 분산형 이벤트 스트리밍 플랫폼 분산형 : 여러 서버나 노드에 데..