6.7. 配置 Apicurio Registry 事件源
这只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。
这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的更多信息,请参阅 https://access.redhat.com/support/offerings/techpreview。
您可以将 Apicurio Registry 配置为在更改 registry 内容时发送事件。例如,Apicurio Registry 可以在创建、更新、删除等 schema 或 API 工件、组或内容规则时触发事件。您可以将 Apicurio Registry 配置为向应用程序发送事件,并将这些更改发送到第三方集成。
有不同的协议可用于传输事件。目前实现的协议是 HTTP 和 Apache Kafka。但是,无论协议如何,使用 CNCF CloudEvents 规格发送事件。您可以使用 Java 系统属性或等同的环境变量配置 Apicurio Registry 事件源。
Apicurio Registry 事件类型
所有事件类型都在 io.apicurio.registry.events.dto.RegistryEventType
中定义。例如,它们包括以下事件类型:
-
io.apicurio.registry.artifact-created
-
io.apicurio.registry.artifact-updated
-
io.apicurio.registry.artifact-state-changed
-
io.apicurio.registry.artifact-rule-created
-
io.apicurio.registry.global-rule-created
-
io.apicurio.registry.group-created
先决条件
- 您必须有一个要发送 Apicurio Registry 云事件的应用程序。例如,这可能是自定义应用程序或第三方应用程序。
使用 HTTP 配置 Apicurio Registry 事件源
本节中的示例显示了在 http://my-app-host:8888/events
上运行的自定义应用程序。
流程
使用 HTTP 协议时,将 Apicurio Registry 配置设置为将事件发送到应用程序,如下所示:
-
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 配置 Apicurio Registry 事件源
本节中的示例显示名为 my-registry-events
的 Kafka 主题,在 my-kafka-host:9092
上运行。
流程
使用 Kafka 协议时,按如下所示设置 Kafka 主题:
-
registry.events.kafka.topic=my-registry-events
-
您可以使用
KAFKA_BOOTSTRAP_SERVERS
环境变量设置 Kafka producer 的配置:KAFKA_BOOTSTRAP_SERVERS=my-kafka-host:9092
另外,您可以使用
registry.events.kafka.config
前缀设置 kafka producer 的属性,例如:registry.events.kafka.config.bootstrap.servers=my-kafka-host:9092
如果需要,您还可以设置 Kafka 主题分区来生成事件:
-
registry.events.kafka.topic-partition=1
-
其他资源
- 如需了解更多详细信息,请参阅 CNCF CloudEvents 规格。