6.6. Service Registry イベントソーシングの設定
Service Registry は、変更がレジストリーに加えられたときにイベントを送信するように設定できます。たとえば、Service Registry は、スキーマおよび API アーティファクトが作成、更新、削除された場合などにイベントをトリガーできます。このように、イベントをアプリケーションおよびサードパーティーのインテグレーションに送信するように Service Registry を設定できます。
イベントの転送に使用できるさまざまなプロトコルがあります。現在実装されているプロトコルは 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 システムプロパティーまたは同等の環境変数を使用して、Service Registry でクラウドイベントを設定できます。
前提条件
- Service Registry クラウドイベントの送信先となるアプリケーションが必要です。たとえば、カスタムアプリケーションやサードパーティーアプリケーションなどです。
HTTP を使用した Service Registry イベントソーシングの設定
本セクションの例は、http://my-app-host:8888/events
で実行されているカスタムアプリケーションを示しています。
手順
HTTP プロトコルを使用する場合は、以下のようにイベントをアプリケーションに送信するように Service 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 を使用した Service Registry イベントソーシングの設定
このセクションの例では、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.bootstrap.servers=my-kafka-host:9092
のように、registry.events.kafka.config
プレフィックスを使用して kafka プロデューサーのプロパティーを設定することもできます。
必要に応じて、イベントの生成に使用する Kafka トピックパーティションを設定することもできます。
-
registry.events.kafka.topic-partition=1
-
その他のリソース
- 詳細は、CNCF CloudEvents 仕様を参照してください。