1.7. Kafka Connect 변환기를 사용하여 외부 시스템으로 데이터 스트리밍
Apache Kafka Connect와 함께 Service Registry를 사용하여 Kafka와 외부 시스템 간에 데이터를 스트리밍할 수 있습니다. Kafka Connect를 사용하면 다양한 시스템의 커넥터를 정의하여 Kafka 기반 시스템으로 대량의 데이터를 이동할 수 있습니다.
그림 1.3. Service Registry 및 Kafka Connect 아키텍처
![레지스트리 및 Kafka Connect 아키텍처](https://access.redhat.com/webassets/avalon/d/Red_Hat_Integration-2023.Q4-Service_Registry_User_Guide-ko-KR/images/dd0b1ca7c646bf2091077535d4a1b606/registry-connect-architecture.png)
서비스 레지스트리는 Kafka Connect에 대해 다음과 같은 기능을 제공합니다.
- Kafka Connect 스키마용 스토리지
- Apache Avro 및 JSON 스키마에 대한 Kafka Connect 컨버터
- 스키마를 관리하기 위한 코어 레지스트리 API
Avro 및 JSON 스키마 변환기를 사용하여 Kafka Connect 스키마를 Avro 또는 JSON 스키마에 매핑할 수 있습니다. 그런 다음 이러한 스키마는 메시지 키와 값을 컴팩트 Avro 바이너리 형식 또는 사람이 읽을 수 있는 JSON 형식으로 직렬화할 수 있습니다. 변환된 JSON은 메시지에 스키마 정보가 포함되어 있지 않고 스키마 ID만 포함되어 있기 때문에 더 상세할 수 있습니다.
서비스 레지스트리는 Kafka 주제에서 사용되는 Avro 및 JSON 스키마를 관리하고 추적할 수 있습니다. 스키마는 서비스 레지스트리에 저장되고 메시지 콘텐츠와 분리되므로 각 메시지에는 작은 스키마 식별자만 포함되어야 합니다. Kafka와 같은 I/O 바인딩된 시스템의 경우 생산자 및 소비자에 대한 총 처리량이 향상됩니다.
서비스 레지스트리에서 제공하는 Avro 및 JSON 스키마 직렬화기 및 역직렬화기(SerDes)는 이 사용 사례에서 Kafka 생산자 및 소비자가 사용합니다. 변경 이벤트를 사용하도록 작성하는 Kafka 소비자 애플리케이션은 Avro 또는 JSON SerDes를 사용하여 이러한 이벤트를 역직렬화할 수 있습니다. Kafka 기반 시스템에 Service Registry SerDes를 설치하고 Kafka Connect와 함께 사용하거나 Debezium과 같은 Kafka Connect 기반 시스템과 함께 사용할 수 있습니다.