데이터 엔지니어 이것저것

Schema Registry 본문

오픈소스/kafka

Schema Registry

pastime 2023. 4. 30. 03:53
728x90

Schema Registy란?

  • 아파치 카프카에서 사용하는 메시지 스키마를 관리하는 것으로,
    메시지의 스키마를 저장하고 관리형, 프로듀서와 컨슈머 간의 메시지의 일관성을 유지하기 위해 사용
  • 컨플루언트에서 개발도니 오픈소스로, REST API를 통해 스키마를 등록하고 검색

 

스키마 레지스트리 스키마 호환성 레벨 (SCHEMA REGISTRY SCHEMA COMPATIBILITY LEVEL)

 

forward

  • 새로운 시키마가 기존 스키마에 대해 호환성을 유지
  • 새로운 필드를 추가하는 경우 호환성을 보장하지만, 삭제되는 경우 호환성을 보장하지 않는다.
  • 컨슈머에서 사용되며, 스키마가 변경되면 최신 버전의 스키마를 사용

 

backward

  • 기존 스키마가 새로운 스키마에 대해 역호환성을 유지
  • 새로운 필드가 추가되거나 삭제될 경우 호환성을 보장하지 않는다.
  • 프로듀서에서 사용되며, 스키마가 변경되면 스키마 레지스트리에서 해당 버전의 스키마를 찾아 사용
이전 버전의 스키마
{"type": "record", "name": "User", "fields": [{"name": "name", "type": "string"}]}
새로 들어온 스키마
{"type": "record", "name": "User", "fields": [{"name": "name", "type": "string"}, {"name": "age", "type": "int"}]}

이럴 경우 backward에 대한 호환성이 없다

 

 

full

  • backword, forward 모두 수행
  • 대부분의 상황에서 사용

 

 

 

 

 

 

출처 : https://docs.confluent.io/platform/current/schema-registry/fundamentals/avro.html

 

728x90

'오픈소스 > kafka' 카테고리의 다른 글

CCDAK 후기  (0) 2023.06.30
[미완성] 카프카 helm으로 변경  (0) 2023.05.04
kafka-topic.sh 기본 명령어  (0) 2023.04.13
카프카 메시지 순서를 보장  (0) 2023.03.27
Kafka Topic  (0) 2023.01.28