- System 간 메시지 전송이 필요할 때마다 중개 역할을 하는 Application을 개발할 것인가?
- 개발 인력
- 개발에 소요되는 시간
- 소스 코드 유지 보수
새로운 System간 연결에서 중개 역할을 하는 Application을 개발하고 사용하는 것은 매우 많은 비용이 소모된다.
Apache Kafka Connect
- Kafka Connect는 Apache Kafka 안팎으로 데이터를 스트리밍하기 위한 Framework
- Kafka Connect는 다른 데이터 시스템을 Kafka와 통합하는 과정을 표준화한 Framework이다.
- 통합을 위한 Connector 개발, 배포, 관리를 단순화 한다.
- Kafka Connect를 사용함으로써 중개 역할을 하는 Application이 필요 없다.
- System간 메시지 전송이 필요할 때, 이미 만들어진 Kafka Connector를 손쉽게 사용할 수 있다.
- Source Connector
- Data가 만들어진 DataSource에서 Data를 뽑아 Kafka로 전송하는 역할
- Sink Connector
- Kafka에 존재하는 데이터를 Consuming해서 해당 System으로 보내는 역할
- 개발 인력, 시간, 유지 보수 작업이 필요 없어진다. -> 제품 구매 비용 발생으로 변환한다.
- Connectors: Task를 관리하여 데이터 스트리밍을 조정하는 Plugin(jar), Java Class/Instance
- Tasks: Kafka와 다른 시스템간의 데이터를 전송하는 방법의 구현체
- Workers: Connector 및 Task를 실행하는 실행 중인 프로세스
- Converters: Connect와 데이터를 보내거나 받는 시스템 간에 데이터를 변환하는데 사용되는 Components
- Transforms: Connector에 의해 생성되거나 Connector로 전송되는 각 메시지를 변경하는 간단한 Components
- Dead Letter Queue: Connect에서 Connector 오류를 처리하는 방법
- Confluent HUB에서 다양한 Connector를 찾을 수 있다.
Connect Architecture
- Worker Process가 Connector, Task 등을 관리한다.
- Conncet Worker Node 상에서 Connect Worker Prodcess가 동작한다.
- Connect Worker Process가 Connector Instance, Task Instance를 관리한다.
- Connect Worker Process는 bootstrap server 정보를 사용하여 Kafka Cluster에 연결한다.
'Kafka' 카테고리의 다른 글
[Spring + Kafka] Spring-Kafka-Streams 간단한 실습 (0) | 2022.12.05 |
---|---|
[Spring + Kafka] 에러 핸들링 (1) | 2022.12.04 |
[Spring + Kafka] 간단 성능 모니터링 (0) | 2022.12.02 |
[Spring + Kafka] AdminKafka 사용하기 (0) | 2022.12.01 |
[Spring + Kafka] Consume Messages (0) | 2022.11.29 |