搜索

6.7. 配置 Apicurio Registry 事件源

download PDF
重要

这只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(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 上运行的自定义应用程序。

流程

  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-registry-events 的 Kafka 主题,在 my-kafka-host:9092 上运行。

流程

  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

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.