1장. 서비스 레지스트리 소개
이 장에서는 서비스 레지스트리 개념 및 기능을 소개하고 레지스트리에 저장된 지원되는 아티팩트 유형에 대한 세부 정보를 제공합니다.
- 1.1절. “Service Registry란 무엇입니까?”
- 1.2절. “서비스 레지스트리의 스키마 및 API 아티팩트”
- 1.3절. “서비스 레지스트리 웹 콘솔을 사용하여 콘텐츠 관리”
- 1.4절. “클라이언트용 서비스 레지스트리 REST API”
- 1.5절. “서비스 레지스트리 스토리지 옵션”
- 1.6절. “스키마 및 Java 클라이언트 serializers/deserializers를 사용하여 Kafka 메시지 검증”
- 1.7절. “Kafka Connect 변환기를 사용하여 외부 시스템으로 데이터 스트리밍”
- 1.8절. “서비스 레지스트리 데모 예”
- 1.9절. “서비스 레지스트리 사용 가능한 배포”
1.1. Service Registry란 무엇입니까?
서비스 레지스트리는 이벤트 중심 아키텍처 및 API 아키텍처 전반에서 표준 이벤트 스키마 및 API 설계를 공유하기 위한 데이터 저장소입니다. 서비스 레지스트리를 사용하여 클라이언트 애플리케이션에서 데이터 구조를 분리하고, REST 인터페이스를 사용하여 런타임 시 데이터 유형 및 API 설명을 공유 및 관리할 수 있습니다.
클라이언트 애플리케이션은 재배포할 필요 없이 런타임 시 서비스 레지스트리에 또는 런타임 시 최신 스키마 업데이트를 동적으로 푸시하거나 가져올 수 있습니다. 개발자 팀은 프로덕션에 이미 배포된 서비스에 필요한 기존 스키마의 서비스 레지스트리를 쿼리할 수 있으며 개발 중인 새 서비스에 필요한 새 스키마를 등록할 수 있습니다.
클라이언트 애플리케이션 코드에 서비스 레지스트리 URL을 지정하여 클라이언트 애플리케이션에서 서비스 레지스트리에 저장된 스키마 및 API 설계를 사용하도록 설정할 수 있습니다. 서비스 레지스트리는 클라이언트 애플리케이션에서 참조되는 메시지를 직렬화 및 역직렬화하는 데 사용되는 스키마를 저장하여 보내는 메시지가 해당 스키마와 호환되는지 확인할 수 있습니다.
서비스 레지스트리를 사용하여 데이터 구조를 애플리케이션에서 분리하면 전체 메시지 크기를 줄임으로써 비용을 줄이고 조직 전체에서 스키마 및 API 설계의 일관된 재사용을 개선하여 효율성이 향상됩니다. Service Registry는 개발자와 관리자가 레지스트리 콘텐츠를 쉽게 관리할 수 있는 웹 콘솔을 제공합니다.
서비스 레지스트리 콘텐츠의 진화를 제어하도록 선택적 규칙을 구성할 수 있습니다. 여기에는 업로드된 콘텐츠가 유효하거나 다른 버전과 호환되는지 확인하는 규칙이 포함됩니다. 구성된 규칙은 새 버전을 Service Registry에 업로드하기 전에 전달해야 하므로 잘못된 스키마 또는 호환되지 않는 스키마 또는 API 설계에서 시간이 손실되지 않도록 해야 합니다.
Service Registry는 Apicurio Registry 오픈 소스 커뮤니티 프로젝트를 기반으로 합니다. 자세한 내용은 https://github.com/apicurio/apicurio-registry 을 참조하십시오.
서비스 레지스트리 기능
- Apache Avro, JSON Schema, Google Protobuf, AsyncAPI, OpenAPI 등과 같은 표준 이벤트 스키마 및 API 사양에 대한 여러 페이로드 형식입니다.
- AMQ Streams 또는 PostgreSQL 데이터베이스의 플러그형 서비스 레지스트리 스토리지 옵션
- 컨텐츠 검증, 호환성 및 무결성을 위한 규칙으로, 서비스 레지스트리 컨텐츠가 시간이 지남에 따라 진화하는 방식을 관리합니다.
- 웹 콘솔, REST API, 명령줄, Maven 플러그인 또는 Java 클라이언트를 사용한 서비스 레지스트리 콘텐츠 관리.
- 외부 시스템용 Kafka Connect와의 통합을 포함하여 전체 Apache Kafka 스키마 레지스트리 지원
- Kafka 클라이언트 serializers/deserializers(SerDes)를 실행하여 런타임 시 메시지 유형을 검증합니다.
- 기존 Confluent 스키마 레지스트리 클라이언트 애플리케이션과의 호환성.
- 메모리 공간 부족과 빠른 배포 시간을 위한 클라우드 네이티브 Quarkus Java 런타임.
- OpenShift에 서비스 레지스트리의 Operator 기반 설치
- Red Hat Single Sign-On을 사용한 OpenID Connect(OIDC) 인증.