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 中运行的自定义应用程序。

流程

  1. 使用 HTTP 协议时,将 Apicurio Registry 配置设置为将事件发送到应用程序,如下所示:

    • registry.events.sink.my-custom-consumer=http://my-app-host:8888/events
  2. 如果需要,您可以按照如下所示配置多个事件消费者:

    • 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 主题。

流程

  1. 使用 Kafka 协议时,按如下所示设置 Kafka 主题:

    • registry.events.kafka.topic=my-registry-events
  2. 您可以使用 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

  3. 如果需要,您还可以将 Kafka 主题分区设置为用于生成事件:

    • registry.events.kafka.topic-partition=1

其他资源