Confluent Cloud スキーマ管理のドキュメントをお探しですか? これらのページでは、Schema Registry の全体的な概念、スキーマフォーマット、ハイブリッドのユースケース、チュートリアル といったポイントに触れていますが、最も重点的に取り上げているのは Confluent Platform です。Confluent Cloud のドキュメントについては、Confluent Cloud でのスキーマの管理」をご覧ください。
Schema Registry の構成オプション¶
このセクションでは、Schema Registry の構成パラメーターを重要度別に整理して取り上げます。
- 高: これらのパラメーターは、パフォーマンスに重大な影響を及ぼす可能性があります。パラメーターの値を変更する場合は注意してください。
- 中: これらのパラメーターは、パフォーマンスにある程度の影響を及ぼす可能性があります。パラメーターにどの程度の調整が必要になるかは、具体的な環境によります。
- 低: これらのパラメーターがパフォーマンスに影響を及ぼす範囲はそれほど大きくなく、重大でもありません。
これらのパラメーターは、Schema Registry の構成ファイルである schema-registry.properties
(ローカル環境の <path-to-confluent>/etc/schema-registry/schema-registry.properties
)に定義されています。
kafkastore.connection.url¶
リーダー選出では非推奨: リーダー選出には、kafkastore.connection.url
ではなく kafkastore.bootstrap.servers
を使用してください。
重要
- ZooKeeper のリーダー選出は非推奨となっています。代わりに Kafka のリーダー選出を使用してください。
- リーダー選出のアップグレードの詳細については、「ZooKeeper のプライマリ選出から Kafka のプライマリ選出への移行」を参照してください。
- 5.5.0 より前(Confluent Platform 5.4.x 以前)には、Schema Registry セキュリティプラグイン をインストールして ACL を使用するように構成した場合、プラグインを ZooKeeper に接続する必要があり、そのために
kafkastore.connection.url
が使用されました。これは現在、Schema Registry ACL オーソライザー の追加とともに不要になっています。ACL オーソライザーがない場合は、付属しているバージョンの Confluent Platform にアップグレードしてください。
Apache Kafka® クラスターの ZooKeeper URL
- 型: string
- デフォルト: ""
- 重要度: 高
kafkastore.bootstrap.servers¶
接続先となる Kafka ブローカーのリスト。(例: PLAINTEXT://hostname:9092,SSL://hostname2:9092
)。
kafkastore.bootstrap.servers
に指定されたブートストラップサーバーを含む Kafka クラスターは、Schema Registry インスタンスを調整(リーダー選出)してスキーマデータを格納する目的に使用されます。Kafka セキュリティが有効になっている場合、Schema Registry が Kafka との接続に使用するセキュリティプロトコルを指定する際にも、kafkastore.bootstrap.servers
が使用されます。
- 型: リスト
- デフォルト: []
- 重要度: 中
リスナー¶
HTTP または HTTPS で API リクエストをリッスンするリスナーのコンマ区切りリスト。リスナーが HTTPS を使用する場合は、適切な SSL 構成パラメーターも設定する必要があります。
Schema Registry の ID は ZooKeeper に格納され、ホスト名とポートから成ります。複数のリスナーが構成されている場合は、最初のリスナーのポートがその ID に使用されます。
- 型: リスト
- デフォルト: "http://0.0.0.0:8081"
- 重要度: 高
schema.compatibility.level¶
スキーマの互換性タイプ。
有効な値は次のとおりです。
none
: 新しいスキーマは、有効なスキーマであればいずれも使用できます。backward
: 新しいスキーマは、一番最後に登録されたスキーマによって生成されたデータを読み取ることができます。backward_transitive
: 新しいスキーマは、既に登録されている任意のスキーマによって生成されたデータを読み取ることができます。forward
: 一番最後に登録されたスキーマが、新しいスキーマによって生成されたデータを読み取ることができます。forward_transitive
: 既に登録されている任意のスキーマが、新しいスキーマによって生成されたデータを読み取ることができます。full
: 新しいスキーマには、一番最後に登録されたスキーマに対する後方互換性と前方互換性があります。full_transitive
: 新しいスキーマには、既に登録されている任意のスキーマに対する後方互換性と前方互換性があります。
Confluent Platform バージョン 5.5.0 以降では、非推奨となった avro-compatibility-level
ではなく、schema.compatibility.level
を使用してください。
- 型: string
- デフォルト: "backward"
- 重要度: 高
参考
- スキーマ進化と互換性
- 新しいプロパティである
schema.compatibility.level
は、Confluent Platform 5.5.0 で導入された複数のスキーマフォーマット(「フォーマット、シリアライザー、逆シリアライザー」を参照)をサポートするように設計されています。
avro.compatibility.level¶
非推奨: Avro 互換性タイプ。
代わりに schema.compatibility.level を使用してください。
- 型: string
- デフォルト: "backward"
- 重要度: 高
host.name¶
ZooKeeper でアドバタイズされるホスト名。Schema Registry を複数のノードで実行する場合は必ずこれを設定してください。
- 型: string
- デフォルト: "192.168.50.1"
- 重要度: 高
kafkastore.topic¶
単一パーティションの堅牢なトピック。高い堅牢性でデータを記録するログとしての役割を果たします。保持ポリシーに起因するデータの損失を防ぐために、このトピックは圧縮されている必要があります。
- 型: string
- デフォルト: "_schemas"
- 重要度: 高
kafkastore.topic.replication.factor¶
スキーマトピックに必要なレプリケーション係数。実際のレプリケーション係数は、この値とライブ Kafka ブローカー数のどちらか小さい方になります。
- 型: int
- デフォルト値: 3
- 重要度: 高
response.mediatype.default¶
Accept ヘッダーで特定のタイプがリクエストされなかった場合に使用されるデフォルトの応答メディアタイプ。
- 型: string
- デフォルト: "application/vnd.schemaregistry.v1+json"
- 重要度: 高
ssl.keystore.location¶
HTTPS に使用されます。SSL に使用するキーストアファイルの場所。
重要
Jetty では、キーストアに格納されているキーの CN が FQDN と一致している必要があります。
- 型: string
- デフォルト: ""
- 重要度: 高
ssl.principal.mapping.rules¶
HTTPS に使用されます。クライアント証明書の識別名(DN)を短い名前にマッピングするためのルールのリスト。ルールは順番に評価され、プリンシパル名と一致する最初のルールが、短い名前へのマッピングに使用されます。リスト内のそれ以降のルールはすべて無視されます。デフォルトでは、X.500 証明書の DN がプリンシパルになります。詳細については、「mTLS から SASL への認証情報の伝播」を参照してください。
Schema Registry では、confluent.schema.registry.auth.ssl.principal.mapping.rules
を使用してください。
- 型: リスト
- デフォルト: "DEFAULT"
- 重要度: 低
ssl.truststore.location¶
HTTPS に使用されます。トラストストアの場所。HTTPS クライアントの認証にのみ必要となります。
- 型: string
- デフォルト: ""
- 重要度: 高
response.mediatype.preferred¶
サーバーが応答に使用する優先メディアタイプの順序指定済みリスト。優先度の高いものから順に列挙されます。
- 型: リスト
- デフォルト: [application/vnd.schemaregistry.v1+json, application/vnd.schemaregistry+json, application/json]
- 重要度: 高
zookeeper.set.acl¶
znode が作成されて ZooKeeper の SASL 認証が構成される際に、ZooKeeper の ACL を設定するかどうか。
重要
true
に設定されている場合、ZooKeeper の SASL プリンシパルは、Kafka ブローカーと同じである必要があります。
- 型: boolean
- デフォルト: false
- 重要度: 高
kafkastore.init.timeout.ms¶
Kafka ストアの初期化(スキーマデータを格納する Kafka トピックの作成を含む)のタイムアウト。
- 型: int
- デフォルト: 60000
- 重要度: 中
kafkastore.security.protocol¶
Kafka (基盤となる永続ストレージ)との接続時に使用するセキュリティプロトコル。PLAINTEXT
、SASL_PLAINTEXT
、SSL
、SASL_SSL
のいずれかの値を使用できます。
- 型: string
- デフォルト: "PLAINTEXT"
- 重要度: 中
leader.eligibility¶
true の場合、このノードはプライマリの選出に参加できます。マルチコロケーション構成のセカンダリデータセンターのクラスターでは、オフにしてください。
- 型: boolean
- デフォルト: true
- 重要度: 中
kafkastore.sasl.kerberos.service.name¶
Kafka クライアントが実行される際の Kerberos プリンシパル名。JAAS 構成ファイルまたはここで定義できます。
- 型: string
- デフォルト: ""
- 重要度: 中
kafkastore.sasl.mechanism¶
Kafka の接続に使用される SASL メカニズム。GSSAPI がデフォルトです。
- 型: string
- デフォルト: "GSSAPI"
- 重要度: 中
access.control.allow.methods¶
Jetty の Access-Control-Allow-Origin ヘッダーに、特定のメソッドの値を設定します。
- 型: string
- デフォルト: ""
- 重要度: 低
ssl.provider¶
HTTPS に使用されます。SSL セキュリティプロバイダーの名前です。Jetty のデフォルトを使用する場合は空白にします。
- 型: string
- デフォルト: ""(Jetty のデフォルト)
- 重要度: 中
ssl.client.auth¶
非推奨: HTTPS に使用します。サーバーのトラストストアを介した認証を HTTPS クライアントに要求するかどうか。代わりに ssl.client.authentication
を使用してください。
- 型: boolean
- デフォルト: false
- 重要度: 中
ssl.client.authentication¶
HTTPS に使用されます。サーバーのトラストストアを使用した認証を HTTPS クライアントに要求するかどうかを指定します。
指定可能な値は、NONE、REQUESTED、REQUIRED のいずれかです。NONE を指定した場合、SSL クライアント認証が無効になります。REQUESTED を指定した場合、SSL クライアント認証はリクエストされますが、必須ではありません。REQUIRED を指定した場合、SSL HTTPS クライアントは、サーバーのトラストストアを使用して認証を行う必要があります。この構成は、非推奨となった ssl.client.auth
をオーバーライドします。
- 型: string
- デフォルト: NONE
- 重要度: 中
ssl.enabled.protocols¶
HTTPS に使用されます。SSL 接続で有効なプロトコルのリストです。コンマ区切りリストです。Jetty のデフォルトを使用する場合は空白にします。
- 型: リスト
- デフォルト: ""(Jetty のデフォルト)
- 重要度: 中
access.control.allow.origin¶
Jetty の Access-Control-Allow-Origin
ヘッダーの値を設定します。
- 型: string
- デフォルト: ""
- 重要度: 低
response.http.headers.config¶
Confluent Platform コンポーネントの HTTP 応答で返す HTTP ヘッダーを選択する目的で使用します。複数の値は、[action][header name]:[header value]
形式のコンマ区切り文字列で指定します。ここで [action]
は、set
、add
、setDate
、addDate
のいずれかになります。ヘッダー値にコンマが含まれている場合は、ヘッダー値を引用符で囲む必要があります。その例を次に示します。
response.http.headers.config="add Cache-Control: no-cache, no-store, must-revalidate", add X-XSS-Protection: 1; mode=block, add Strict-Transport-Security: max-age=31536000; includeSubDomains, add X-Content-Type-Options: nosniff
- 型: string
- デフォルト: ""
- 重要度: 低
confluent.schema.registry.auth.ssl.principal.mapping.rules¶
クライアント証明書の識別名(DN)を短い名前にマッピングするためのルールのリスト。ルールは順番に評価され、プリンシパル名と一致する最初のルールが、短い名前へのマッピングに使用されます。リスト内のそれ以降のルールはすべて無視されます。デフォルトでは、X.500 証明書の DN がプリンシパルになります。
- 型: リスト
- デフォルト: DEFAULT
- 重要度: 低
kafkastore.ssl.endpoint.identification.algorithm¶
サーバー証明書を使用してサーバーホスト名を検証するエンドポイント識別アルゴリズムです。
- 型: string
- デフォルト: https
- 重要度: 低
kafkastore.ssl.keymanager.algorithm¶
SSL 接続のキーマネージャーファクトリで使用されるアルゴリズム。
- 型: string
- デフォルト: "SunX509"
- 重要度: 低
kafkastore.ssl.trustmanager.algorithm¶
SSL 接続のトラストマネージャーファクトリで使用されるアルゴリズムです。
- 型: string
- デフォルト: "PKIX"
- 重要度: 低
metric.reporters¶
Metrics Reporter として使用するクラスのリスト。MetricReporter
インターフェイスを実装することで、新しいメトリック作成の通知を受けるクラスをプラグインすることができます。JMX 統計情報を登録するための JmxReporter が必ず含まれます。
- 型: リスト
- デフォルト: []
- 重要度: 低
metrics.jmx.prefix¶
デフォルトの JMX レポーターのメトリック名に適用するプレフィックス。
- 型: string
- デフォルト: "kafka.schema.registry"
- 重要度: 低
metrics.sample.window.ms¶
メトリクスシステムは、サンプル数(構成可能)を一定のウィンドウサイズにわたって維持します。そのウィンドウのサイズを制御するのが、この構成です。たとえば、計測ごとに 2 つのサンプルが 30 秒間維持されます。ウィンドウの期限が切れると、最も古いウィンドウが消去されて上書きされます。
- 型: long
- デフォルト: 30000
- 重要度: 低
request.logger.name¶
NCSA 共通ログフォーマットのリクエストログを書き込む SLF4J ロガーの名前。
- 型: string
- デフォルト: "io.confluent.rest-utils.requests"
- 重要度: 低
inter.instance.protocol¶
Schema Registry インスタンス間の呼び出し中に使用されるプロトコルです。指定したプロトコルが、セカンダリノードからプライマリノードへの、書き込みや削除を目的とした呼び出しに使用されます。デフォルト値は通常 http
です。https
が設定された場合、ssl.keystore
と ssl.truststore
の構成が呼び出し中に使用されます。(非推奨となった schema.registry.inter.instance.protocol
の代わりに使用します。)
- 型: string
- デフォルト: "http"
- 重要度: 低
schema.registry.inter.instance.protocol¶
非推奨: Schema Registry インスタンス間の呼び出し中に使用されるプロトコル。指定したプロトコルが、セカンダリノードからプライマリノードへの、書き込みや削除を目的とした呼び出しに使用されます。デフォルト値は通常 http
です。https
が設定された場合、ssl.keystore
と ssl.truststore
の構成が呼び出し中に使用されます。
代わりに inter.instance.protocol を使用してください。
- 型: string
- デフォルト: ""
- 重要度: 低
resource.extension.class¶
SchemaRegistryResourceExtension
インターフェイスの有効な実装に対する完全修飾クラス名。ユーザー定義リソース(フィルターなど)を挿入する際に使用できます。一般に、ログ記録、セキュリティなど、カスタム機能を追加する際に使用されます。(非推奨となった schema.registry.resource.extension.class
の代わりに、resource.extension.class
を使用してください。)
- 型: リスト
- デフォルト: []
- 重要度: 低
schema.registry.group.id¶
Schema Registry のクラスター ID の名前は、Schema Registry のグループ ID から取得されます。
- 型: string
- デフォルト: "schema-registry"
- 重要度: 低
schema.registry.resource.extension.class¶
非推奨: SchemaRegistryResourceExtension
インターフェイスの有効な実装に対する完全修飾クラス名。ユーザー定義リソース(フィルターなど)を挿入する際に使用できます。一般に、ログ記録、セキュリティなど、カスタム機能を追加する際に使用されます。
代わりに resource.extension.class
を使用してください。
- 型: string
- デフォルト: ""
- 重要度: 低
schema.registry.zk.namespace¶
非推奨: Schema Registry クラスターが複数ある場合のための schema.registry.zk.namespace
が最初からあった場合には、schema.registry.group.id
を構成します。
重要
- ZooKeeper のリーダー選出は非推奨となっています。代わりに Kafka のリーダー選出を使用してください。
- 詳細については、「ZooKeeper のプライマリ選出から Kafka のプライマリ選出への移行」を参照してください。
Schema Registry のメタデータを格納するための ZooKeeper 名前空間として使用される文字列です。同じ Schema Registry サービスに属している Schema Registry インスタンスは、ZooKeeper 名前空間が同じである必要があります。
- 型: string
- デフォルト: "schema_registry"
- 重要度: 低
ssl.keymanager.algorithm¶
HTTPS に使用されます。SSL 接続のキーマネージャーファクトリで使用されるアルゴリズムです。Jetty のデフォルトを使用する場合は空白にします。
- 型: string
- デフォルト: ""(Jetty のデフォルト)
- 重要度: 低
ssl.trustmanager.algorithm¶
HTTPS に使用されます。SSL 接続のトラストマネージャーファクトリで使用されるアルゴリズムです。Jetty のデフォルトを使用する場合は空白にします。
- 型: string
- デフォルト: ""(Jetty のデフォルト)
- 重要度: 低
ssl.cipher.suites¶
HTTPS に使用されます。SSL 暗号スイートのリストです。コンマ区切りリストです。Jetty のデフォルトを使用する場合は空白にします。
- 型: リスト
- デフォルト: ""(Jetty のデフォルト)
- 重要度: 低
ssl.endpoint.identification.algorithm¶
HTTPS に使用されます。サーバー証明書を使用してサーバーホスト名を検証するエンドポイント識別アルゴリズムです。Jetty のデフォルトを使用する場合は空白にします。
- 型: string
- デフォルト: ""(Jetty のデフォルト)
- 重要度: 低
kafkastore.sasl.kerberos.kinit.cmd¶
Kerberos の kinit コマンドパスです。
- 型: string
- デフォルト: "/usr/bin/kinit"
- 重要度: 低
kafkastore.sasl.kerberos.min.time.before.relogin¶
更新試行から次の更新試行までのログイン時間。
- 型: long
- デフォルト: 60000
- 重要度: 低
kafkastore.sasl.kerberos.ticket.renew.jitter¶
更新時間に追加されたランダムジッターのパーセンテージ。
- 型: double
- デフォルト: 0.05
- 重要度: 低
kafkastore.sasl.kerberos.ticket.renew.window.factor¶
最後の更新からチケットの有効期限までの時間が指定のウィンドウ係数に達するまでの間、ログインスレッドはスリープ状態になります。この時間の経過後、チケットの更新が試行されます。
- 型: double
- デフォルト: 0.8
- 重要度: 低
kafkastore.group.id¶
KafkaStore コンシューマーの group.id をオーバーライドするには、この設定を使用します。セキュリティが有効にされているときは、Schema Registry コンシューマーの group.id に対する安定性を確保するうえで、この設定が重要となります。
この構成がない場合、group.id
は schema-registry-<host>-<port>
になります。
- 型: string
- デフォルト: ""
- 重要度: 低
Schema Registry セキュリティプラグインのライセンス¶
Schema Registry セキュリティプラグイン には、Confluent Platform エンタープライズライセンスが必要です。
confluent.license
など、プラグインの構成方法については、「Schema Registry セキュリティプラグインのインストールと構成」の 構成オプション を参照してください。