5.4. Service Registry Maven 플러그인을 사용하여 수동으로 아티팩트 참조 추가
일부 Service Registry 아티팩트 유형에는 한 아티팩트 파일에서 다른 아티팩트 파일로의 아티팩트 참조 가 포함될 수 있습니다. 재사용 가능한 스키마 또는 API 아티팩트를 정의한 다음 아티팩트 참조의 여러 위치에서 참조할 수 있습니다.
다음 아티팩트 유형은 아티팩트 참조를 지원합니다.
- Apache Avro
- Google Protobuf
- JSON 스키마
- OpenAPI
- AsyncAPI
이 섹션에서는 Service Registry Maven 플러그인을 사용하여 서비스 레지스트리에 저장된 간단한 Avro 스키마 아티팩트에 대한 아티팩트 참조를 수동으로 등록하는 간단한 예를 보여줍니다. 이 예에서는 다음 Exchange
스키마 아티팩트가 서비스 레지스트리에 이미 생성되어 있다고 가정합니다.
교환 스키마
{ "namespace": "com.kubetrade.schema.common", "type": "enum", "name": "Exchange", "symbols" : ["GEMINI"] }
이 예제에서는 중첩된 교환
스키마 아티팩트에 대한 참조를 포함하는 tradeKey
스키마 아티팩트를 생성합니다.
교환 스키마에 대한 중첩된 참조가 있는 tradeKey 스키마
{ "namespace": "com.kubetrade.schema.trade", "type": "record", "name": "TradeKey", "fields": [ { "name": "exchange", "type": "com.kubetrade.schema.common.Exchange" }, { "name": "key", "type": "string" } ] }
사전 요구 사항
- 클라이언트 애플리케이션에 대한 Maven 프로젝트를 생성했습니다. 자세한 내용은 Apache Maven 설명서 를 참조하십시오.
-
참조된
교환
스키마 아티팩트는 이미 서비스 레지스트리에 생성됩니다.
프로세스
apicurio-registry-maven-plugin
을 사용하여 다음과 같이교환
스키마에 중첩된 참조가 포함된tradeKey
스키마를 등록하도록 Mavenpom.xml
파일을 업데이트합니다.<plugin> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-maven-plugin</artifactId> <version>${apicurio-registry.version}</version> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>register</goal> 1 </goals> <configuration> <registryUrl>MY-REGISTRY-URL/apis/registry/v2</registryUrl> 2 <authServerUrl>MY-AUTH-SERVER</authServerUrl> <clientId>MY-CLIENT-ID</clientId> <clientSecret>MY-CLIENT-SECRET</clientSecret> 3 <clientScope>MY-CLIENT-SCOPE</clientScope> <artifacts> <artifact> <groupId>test-group</groupId> 4 <artifactId>TradeKey</artifactId> <version>2.0</version> <type>AVRO</type> <file> ${project.basedir}/src/main/resources/schemas/TradeKey.avsc </file> <ifExists>RETURN_OR_UPDATE</ifExists> <canonicalize>true</canonicalize> <references> <reference> 5 <name>com.kubetrade.schema.common.Exchange</name> <groupId>test-group</groupId> <artifactId>Exchange</artifactId> <version>2.0</version> <type>AVRO</type> <file> ${project.basedir}/src/main/resources/schemas/Exchange.avsc </file> <ifExists>RETURN_OR_UPDATE</ifExists> <canonicalize>true</canonicalize> </reference> </references> </artifact> </artifacts> </configuration> </execution> </executions> </plugin>
- 1
- 서비스 레지스트리에 스키마 아티팩트를 업로드하려면
register
를 실행 목표로 지정합니다. - 2
../apis/registry/v2
끝점을 사용하여 서비스 레지스트리 URL을 지정합니다.- 3
- 인증이 필요한 경우 인증 서버 및 클라이언트 자격 증명을 지정할 수 있습니다.
- 4
- Service Registry 아티팩트 그룹 ID를 지정합니다. 고유한 그룹 ID를 사용하지 않으려면
기본
그룹을 지정할 수 있습니다. - 5
- 그룹 ID, 아티팩트 ID, 버전, 유형 및 위치를 사용하여 Service Registry 아티팩트 참조를 지정합니다. 이러한 방식으로 여러 아티팩트 참조를 등록할 수 있습니다.
-
예를 들어
mvn package
명령을 사용하여 Maven 프로젝트를 빌드합니다.
추가 리소스
- Apache Maven 사용에 대한 자세한 내용은 Apache Maven 설명서를 참조하십시오.
- Service Registry Maven 플러그인을 사용하여 아티팩트 참조를 수동으로 등록하는 오픈 소스 예제는 avro-maven-with-references 데모 예제 를 참조하십시오.
- 아티팩트 참조의 자세한 예는 8장. Java 클라이언트에서 Kafka serializers/deserializers 구성 에서 각 아티팩트 유형 구성 섹션을 참조하십시오.