본문으로 건너뛰기

Schema Registry

스키마 레지스트리는 Kafka와 클라이언트 사이에서 오가는 데이터의 형태(스키마)를 중앙에서 관리, 검증하면서 데이터 호환성을 보장하기 위한 스키마 저장소에요.

스키마 레지스트리가 왜 필요할까요?

Kafka는 메시지를 저장하고 제공하는 역할을 하지만, 메시지의 형태까지 직접 관리하지는 않아요. 따라서, 어떠한 형태의 메시지든지 Kafka에 저장될 수 있어요. 만약, 프로듀서가 보내는 메시지와 컨슈머가 읽어가는 메시지의 형태가 다르다면 데이터 호환성 문제가 일어날 수 있어요. 따라서, 스키마 레지스트리를 통해 Kafka와 오가는 데이터의 형식을 표준화하여 관리해야해요.

Felice에서는 스키마 레지스트리 클러스터를 등록하고, 스키마를 생성, 갱신, 삭제할 수 있는 스키마 관리 기능을 제공하고 있어요. 스키마 레지스트리는 데이터 파이프라인 > 스키마 레지스트리 메뉴에서 관리할 수 있어요. 스키마 관리는 다음 문서에서 자세히 다뤄요.

schema-registry-cluster-list

새로운 스키마 레지스트리 클러스터 등록

등록할 스키마 레지스트리 클러스터 정보를 입력해주세요.

  • 클러스터 이름: 스키마 레지스트리 구분을 위해 Felice에서 사용할 클러스터 이름
  • Hosts: 클러스터를 구성하는 서버들의 정보

schema-registry-cluster-register

먼저, 클러스터 이름을 입력하고, [호스트 추가] 버튼을 눌러서, 스키마 레지스트리 클러스터를 구성하는 서버 정보를 추가해주세요.

schema-registry-cluster-register-add-host-modal

JMX 메트릭 사용

스키마 레지스트리 서버에서 JMX Exporter를 사용하면, JVM 메트릭을 제공하기 때문에 스키마 레지스트리를 모니터링할 수 있어요. JMX Exporter를 사용하지 않으면, 스키마 레지스트리를 모니터링할 수 없고, 스키마 등록, 삭제와 같은 스키마 관리 기능을 정상적으로 이용할 수 없어요.

노드 메트릭 사용

스키마 레지스트리 서버에서 노드 Exporter를 사용할 경우 노드 메트릭을 제공하기 때문에 시스템 성능을 모니터링할 수 있어요. 노드 Exporter를 사용하지 않을 경우 노드로 메트릭을 조회하는 메트릭이 보이지 않을 수 있어요.

정보를 모두 입력했다면, [등록] 버튼을 눌러 등록을 완료해주세요.

✨ 이제 등록한 정보를 토대로 스키마 레지스트리와 스키마를 관리할 수 있어요!

스키마 레지스트리 클러스터 관리

스키마 레지스트리 클러스터 목록 페이지에서, [스키마 레지스트리 관리] 버튼을 눌러 관리 페이지로 이동할 수 있어요. 관리 페이지에는 스키마 레지스트리 클러스터의 등록 정보가 보여져요. 클러스터 이름은 변경할 수 없으며, 호스트를 추가, 수정, 삭제하거나 Schema/Node 매트릭 설정을 활성화 상태로 수정할 수 있어요.

schema-registry-cluster-settings

주의하세요.

메트릭 설정은 활성화 상태에서 비활성화로 변경할 수 없어요.

스키마 레지스트리 클러스터 제거

스키마 레지스트리 클러스터 관리 페이지에서, 왼쪽 하단에 위치한 [클러스터 제거] 버튼을 눌러 Felice에 등록된 스키마 레지스트리 클러스터 정보를 제거할 수 있어요. 이 작업은 Felice에 등록된 정보를 제거하는 것으로, 실제 스키마 레지스트리를 삭제하는 작업은 아니에요. 클러스터 등록 정보를 제거하면 모니터링 서비스가 더 이상 해당 스키마 레지스트리 클러스터의 상태를 추적하지 않아요.

schema-registry-cluster-remove-modal