6.6. 서비스 레지스트리 이벤트 소싱 구성
레지스트리가 변경될 때 이벤트를 보내도록 서비스 레지스트리를 구성할 수 있습니다. 예를 들어 서비스 레지스트리는 스키마 및 API 아티팩트가 생성, 업데이트, 삭제되는 경우 이벤트를 트리거할 수 있습니다. 이러한 방식으로 애플리케이션 및 타사 통합에 이벤트를 전송하도록 서비스 레지스트리를 구성할 수 있습니다.
이벤트 전송에 사용할 수 있는 다양한 프로토콜이 있습니다. 현재 구현된 프로토콜은 HTTP 및 Apache Kafka입니다. 그러나 프로토콜에 관계없이 이벤트는 CNCF CloudEvents 사양을 사용하여 전송됩니다.
모든 이벤트 유형은 io.apicurio.registry.events.dto.RegistryEventType
에 정의됩니다. 예를 들어 이벤트 유형에는 다음이 포함됩니다.
-
io.apicurio.registry.artifact-created
-
io.apicurio.registry.artifact-updated
-
io.apicurio.registry.artifact-rule-created
-
io.apicurio.registry.global-rule-created
Java 시스템 속성 또는 동등한 환경 변수를 사용하여 서비스 레지스트리에서 클라우드 이벤트를 구성할 수 있습니다.
사전 요구 사항
- 서비스 레지스트리 클라우드 이벤트를 보낼 애플리케이션이 있어야 합니다. 예를 들어 사용자 지정 애플리케이션 또는 타사 애플리케이션일 수 있습니다.
HTTP를 사용하여 서비스 레지스트리 이벤트 소싱 구성
이 섹션의 예제에서는 http://my-app-host:8888/events
에서 실행되는 사용자 정의 애플리케이션을 보여줍니다.
절차
HTTP 프로토콜을 사용하는 경우 다음과 같이 이벤트를 애플리케이션으로 전송하도록 서비스 레지스트리 구성을 설정합니다.
-
registry.events.sink.my-custom-consumer=http://my-app-host:8888/events
-
필요한 경우 다음과 같이 여러 이벤트 소비자를 구성할 수 있습니다.
-
registry.events.sink.my-custom-consumer=http://my-app-host:8888/events
-
registry.events.sink.other-consumer=http://my-consumer.com/events
-
Apache Kafka를 사용하여 서비스 레지스트리 이벤트 소싱 구성
이 섹션의 예제에서는 my-kafka-host:9092
에서 실행되는 my-registry-events
라는 Kafka 주제를 보여줍니다.
절차
Kafka 프로토콜을 사용하는 경우 Kafka 주제를 다음과 같이 설정합니다.
-
registry.events.kafka.topic=my-registry-events
-
KAFKA_BOOTSTRAP_SERVERS
환경 변수를 사용하여 Kafka 생산자의 구성을 설정할 수 있습니다.KAFKA_BOOTSTRAP_SERVERS=my-kafka-host:9092
또는
registry.events.kafka.config
접두사를 사용하여 kafka 생산자의 속성을 설정할 수 있습니다. 예:registry.events.kafka.config.bootstrap.servers=my-kafka-host:9092
필요한 경우 이벤트를 생성하는 데 사용할 Kafka 주제 파티션을 설정할 수도 있습니다.
-
registry.events.kafka.topic-partition=1
-