6.6. 配置 Apicurio Registry 事件源
您可以配置 Apicurio Registry,在更改 registry 时发送事件。例如,Apicurio Registry 可以在创建、更新、删除、删除等模式和 API 工件时触发事件。您可以配置 Apicurio Registry,以以这种方式将事件发送到应用程序并第三方集成。
有不同的协议可用于传输事件。当前实施的协议是 HTTP 和 Apache Kafka。但是,无论协议是什么,都将使用 CNCF CloudEvents 规格发送事件。
所有事件类型都在 io. apicurio.registry.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 系统属性或等同的环境变量在 Apicurio Registry 中配置云事件。
前提条件
- 您必须具有要发送 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-kafka-host:9092 上运行的名为 my-registry-events 的 Kafka 主题。
流程
使用 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 规格