この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 10630|答える: 1

カフカ構成パラメータの詳細な説明

[リンクをコピー]
掲載地 2021/06/24 11:47:12 | | |
ブローカー設定

財産デフォルト形容
broker.id 各ブローカーは一意の非負整数IDで識別できます。 このIDはブローカーの「名前」として使われることができ、その存在によりブローカーは消費者を混乱させることなく別のホストやポートに移行できます。 IDは一意であれば、好きな番号をIDとして選んで構いません。
log.dirs/tmp/kafka-logsカフカがデータを保存する道筋。 この経路は一意ではなく、複数存在し、経路はコンマで区切るだけで十分です。 新しいパーティションが作成されるたびに、パーティションの数が最も少ないパスで作成されます。
港湾6667サーバーはクライアントが接続するポートを受け入れます
Zookeeper.connect(動物園の連通)ヌルZooKeeperの接続文字列の形式はhostname:portで、ホスト名とポートはそれぞれZooKeeperクラスタ内のノードのホストとポートを表します。 ホストがダウンした際に他のZooKeeperノードに接続するには、以下のように複数のホストを作成できます:
hostname1:port1, hostname2:port2, hostname3:port3.

ZooKeeperでは、クラスタ内のすべてのkafkaデータを特定のパスで保存するための「chroot」パスを追加できます。 複数のKafkaクラスタや他のアプリケーションが同じZooKeeperクラスタを使用している場合、この方法でデータストレージパスを設定できます。 これは接続文字列を次のようにフォーマットすることで実装できます:
hostname1:port1, hostname2: port2, hostname3: port3/chroot/path
このセットアップでは、すべてのkafkaクラスタデータを/chroot/pathパスの下に格納します。 ブローカーを開始する前にこの経路を作成し、消費者も同じ接続形式を使用していなければなりません。
message.max.バイト1000000サーバーが受信できる最大メッセージの容量。 この特性に関する消費者と生産者の設定は同期されなければならず、そうでなければ生産者が発信するメッセージが消費者にとって大きすぎます。
num.network.threads3サーバーがネットワークリクエストを処理するために使用するネットワークスレッドの数; 一般的にこの性質を変更する必要はありません。
num.io.threads8サーバーがリクエストを処理するために使用するI/Oスレッドの数; スレッド数はハードディスク数と同等であるべきです。
背景.スレッド4ファイル削除などのバックグラウンド処理に使用されるスレッド数; この物件を変更する必要はありません。
queued.max.requests500ネットワークスレッドが新しいリクエストの読み取りを停止する前に処理できる最大リクエスト数。
host.nameヌルブローカーのホストネームは以下の通りです。 ホスト名がすでに設定されている場合、ブローカーはこのアドレスにのみ割り当てられます。 設定がなければ、すべてのインターフェースにバインドし、ZKに1コピーを公開します
advertised.host.nameヌル設定されると、ブローカーのホスト名として生産者、消費者、その他のブローカーに送信されます
advertized.portヌルこのポートは生産者、消費者、その他のブローカーに提供され、接続確立に使用されます。 実際のポートとサーバーがバインドするポートが異なる場合にのみ設定すればいいのです。
ソケット.センド.バッファ.バイト100 * 1024SO_SNDBUFF サーバーがソケット接続を行うために使うキャッシュサイズ
socket.receive.buffer.bytes100 * 1024SO_RCVBUFFキャッシュサイズで、サーバーがソケットに接続するために使います
socket.request.max.バイト100 * 1024 * 1024サーバーが許可する最大リクエストサイズ;  これにより、サーバーオーバーフローを回避でき、オーバーフローはJavaヒープサイズよりも小さいはずです
num.partitions1トピック作成時にパーティション数が示されていない場合、この数がトピック下のデフォルトのパーティション数となります。
log.segment.bytes1014*1024*1024トピックパーティションのログは特定のディレクトリ内の多くのファイルに保存されており、パーティションのログはセグメントに分割されます。 この属性は各ファイルの最大サイズです。 寸法がこの値に達すると、新しいファイルが作成されます。 この設定は各トピックの基礎によって上書き可能です。
眺め  ハイパーリンクのログインが見えます。
ログロール時間24 * 7ファイルがlog.segment.bytesに到達しなくても、ファイル作成時間がこのプロパティに達するたびに新しいファイルが作成されます。 この設定はトピックレベルの設定によっても上書き可能です。
眺めるハイパーリンクのログインが見えます。
log.cleanup.policy(log.cleanup.policy)削除
log.retention.minutes および log.retention.hours7日間各ログファイルが削除されるまでに保存された時間。 すべてのトピックでデフォルトのデータ節約時間は同じです。
log.retention.minutes と log.retention.bytes は、どのプロパティがオーバーフローされていてもログファイルの削除設定に使用されます。
このプロパティ設定は、トピックが基本的に設定されたときに上書きできます。
眺めるハイパーリンクのログインが見えます。
log.retention.bytes-1各トピックの各パーティションで保存されたデータの総量; これはパーティションごとの上限であり、この数にパーティション数を掛けると、トピックごとに保存されたデータ量の合計になります。 また注意:log.retention.hoursとlog.retention.bytesの両方が設定されている場合、どちらかの制限を超えるとセグメントファイルが削除されます。
この設定は各トピックで上書き可能であることにご注意ください。
眺めるハイパーリンクのログインが見えます。
log.retention.check.interval.ms5分ログ分割ファイル間の間隔を確認し、ファイル属性が削除要件を満たしているか確認してください。
log.cleaner.enablefalseこのプロパティがfalseに設定されている場合、ログが最大保存時間またはサイズで完了すると削除されます。 trueに設定すると、セーブ属性の上限に達したときに発生しますハイパーリンクのログインが見えます。
log.cleaner.threads1ログ圧縮を実行するスレッドの数
log.cleaner.io.max.bytes.per.second何一つログクリーナーがログ圧縮を行う際に持てる最大I/Oの数。 この設定により、清掃員はアクティブなリクエストサービスの妨げを避けられます。
log.cleaner.io.buffer.size500*1024*1024ログクリーナーはクリーンアップの過程でログをインデックスし、使用されるキャッシュのサイズを削減します。 十分なメモリを確保するために、大容量に設定するのが最善です。
log.cleaner.io.buffer.load.factor512*1024ログクリーニングに必要なI/Oチャンクの大きさ。 この設定を変更する必要はありません。
log.cleaner.io.buffer.load.factor0.9ログクリーニングに使用されるハッシュテーブルの負荷係数; このオプションを変更する必要はありません。
log.cleaner.backoff.ms15000ログが清掃される時間間隔が行われます
log.cleaner.min.cleanable.ratio0.5この構成は、ログ圧縮機がログを片付ける頻度を制御します(仮定)ハイパーリンクのログインが見えます。は開いている)。 デフォルトでは、ログの50%以上を清掃しないでください。 この比率はバックアップログが消費する最大容量(ログの50%が50%で圧縮)に連動しています。 高い料金は廃棄物が減り、より多くのスペースを効率的に片付けることができます。 この設定は各トピック設定で上書き可能です。
眺めるハイパーリンクのログインが見えます。
log.cleaner.delete.retention.ms1日保管時間; 圧縮ログを保持する最大時間; また、クライアントがメッセージを消費する最大時間でもあり、log.retention.minutesの違いは、一方が非圧縮データを制御し、もう一方が圧縮データを制御し、トピック作成時に指定された時間に上書きされるという点です。
log.index.size.max.バイト10*1024*1024ログセグメントあたりの最大サイズ。 ログサイズがこの値に達すると、log.segment.bytesの制限を超えなくても新しいログセグメントを生成する必要があります。
log.index.interval.bytes4096フェッチを行う際は、一定のスペースを確保した最も近いオフセットをスキャンする必要があります。設定が大きいほど良いです。一般的にはデフォルトの値を使います
log.flush.interval.messagesロング・マックスバリューメッセージを蓄積する前にファイル「同期」をディスクに記録してください。 ディスクのIO操作は遅い作業ですが、「データ信頼性」のために必要な手段であるため、硬化までの時間間隔が必要かどうかを確認してください。 この値が大きすぎると「同期」時間が長くなり(IOブロッキング)、小さすぎると「fsync」(IOブロッキング)が長くなります。この値が小さいと多くの「同期」回数が発生し、クライアント全体のリクエストに一定の遅延が生じ、物理サーバーの障害によりfsyncなしのメッセージが失われます。
log.flush.scheduler.interval.msロング・マックスバリューfsync間隔が必要かどうか確認してください
log.flush.interval.msロング・マックスバリューこの数値は「fsync」の時間間隔を制御するために使われます。メッセージ数がディスクに固定されたメッセージ数に達していなくても、最後のディスク同期からの時間間隔が閾値に達した場合、ディスク同期もトリガーされます。
log.delete.delay.ms60000インデックスでファイルがクリアされた後の保持時間は、一般的に変更する必要はありません
auto.create.topics.enabletrueトピックの自動作成を許可するかどうか。 もし本当なら、produce or fetchが存在しないと自動的に存在しないトピックが作成されます。 そうでなければ、コマンドラインを使ってトピックを作成する必要があります
controller.socket.timeout.ms30000パーティション管理コントローラがバックアップを実行する際のソケットのタイムアウト時間。
controller.message.queue.sizeInt.MaxValueコントローラーからブローカーへ
default.replication.factor1バックアップコピーのデフォルト数は自動生成トピックのみを指します
replica.lag.time.max.ms10000もしフォロワーがこの時間内にフェッチリクエストを送信しなければ、リーダーはそのフォロワーをISRから再削除し、フォロワーをハングしたものとみなします
replica.lag.max.メッセージ4000レプリカにこの数を超えるバックアップ未バックアップがある場合、リーダーはフォロワーを外し、フォロワーを吊るすとみなします
replica.socket.timeout.ms30*1000バックアップ時のソケットネットワーク要求のリーダータイムアウト時間
replica.socket.receive.buffer.bytes64*1024バックアップ中にリーダーにネットワークリクエストを送信する際のソケット受信バッファ
replica.fetch.max.バイト1024*1024バックアップ時の各フェッチの最大値
replica.fetch.min.bytes500リーダーがバックアップ要求を行った際のデータがリーダーに到達する最大待ち時間
replica.fetch.min.bytes1バックアップ時の各フェッチ後の応答の最小サイズ
num.replica.fetchers1リーダーからのデータをバックアップするスレッドの数
replica.high.watermark.checkpoint.interval.ms5000各レプリカは、最高水位がどのくらいの頻度で硬化するかを確認します
fetch.purgatory.purge.interval.requests1000fetch リクエスト パージ間隔
producer.purgatory.purge.interval.requests1000プロデューサーがパージ間隔を要求
zookeeper.session.timeout.ms6000Zookeeperセッションのタイムアウト。
zookeeper.connection.timeout.ms6000クライアントがzookeeperと接続を確立するまで待つ最大時間
zookeeper.sync.time.ms2000ZKフォロワーは長い間ZKリーダーに遅れをとっています
controlled.shutdown.enabletrueブローカーの閉鎖を制御できるかどうか。 可能であれば、ブローカーはクロージング前にすべてのリーダーを他のブローカーに移すことができます。 これにより、シャットダウン中の利用不能が減ります。
controlled.shutdown.max.retries3未完成のシャットダウンを実行する前にシャットダウンを成功裏に実行できるコマンドの数。
controlled.shutdown.retry.backoff.ms5000シャットダウン間のバックオフ時間
auto.leader.rebalance.enabletrueもしこれが当てはまるなら、コントローラーは自動的にパーティションに関するブローカーのリーダーシップをバランスさせます
leader.imbalance.per.broker.percent10各ブローカーが許容する最大不均衡比率
リーダー。不均衡。チェック。間隔。秒300リーダーの不均衡の頻度を確認してください
offset.metadata.max.バイト4096クライアントがオフセットの最大数を節約できるようにします
max.connections.per.ipInt.MaxValue各IPアドレスに対して、ブローカーごとに最大接続数を設定できます
max.connections.per.ip.overrides IPまたはホスト名ごとのデフォルト接続の最大カバレッジ
connections.max.idle.ms600000空の接続に対するタイムアウト制限
ログロール。ジッター。 {ms,hours}0logRollTimeMillisから抽象化された最大ジッター数
num.recovery.threads.per.data.dir1各データディレクトリが回復をログするために使用するスレッド数
unclean.leader.election.enabletrueISRの非レプリカ設定をリーダーとして使用できるかどうかを示します
delete.topic.enablefalseトピックを削除できる
offsets.topic.num.partitions50オフセットコミットトピックのパーティション数。 現在はデプロイ後にこの設定を変更することがサポートされていないため、本番環境ではより高い設定(例:100-200)を使うことを推奨します。
offsets.topic.retention.minutes1440この期間を超えて存在したオフセットは削除保留としてマークされます
offsets.retention.check.interval.ms600000オフセットマネージャーは、古いオフセットの頻度を確認します
offsets.topic.replication.factor3トピックのオフセットのバックアップコピー数。 より高い利用可能性を保証するために、より高い数値を設定することが推奨されます
offset.topic.segment.bytes104857600相殺の話題。
offsets.load.buffer.size5242880この設定はバッチサイズに関連しており、オフセットセグメントから読み取る際に使われます。
offsets.commit.required.acks-1オフセットコミットが許容される前に確認回数を設定する必要があり、通常は変更する必要もありません


財産デフォルトサーバーデフォルトプロパティ形容
クリーンアップ.ポリシー削除log.cleanup.policy(log.cleanup.policy)「削除」または「コンパクト」のいずれかです。 この文字列は古い丸太部分の利用方法を示しています。 デフォルトの方法(「削除」)は、リサイクル時間やサイズ制限に達した時点で古い部品を破棄します。 「コンパクト」は丸太を圧縮します
delete.retention.ms86400000(24時間)log.cleaner.delete.retention.mslog.retention.minutesの違いは、一方が非圧縮データを制御し、もう一方が圧縮データを制御することです。 この構成はトピック作成時にピニングパラメータによって上書き可能です
flush.messages何一つlog.flush.interval.messagesこの構成はfsyncログを強制するための時間間隔を指定します。 例えば、このオプションを1に設定すると、各メッセージの後にfsyncが必要で、5に設定すれば5メッセージごとにfsyncが必要です。 一般的に、この値を設定しないことが推奨されます。 このパラメータの設定には、「データの信頼性」と「パフォーマンス」の間で必要なトレードオフが必要です。 この値が大きすぎると毎回長い時間が「fsync」され(IOブロッキング)、またこの値が小さいと大量の「fsync」が発生し、全体のクライアント要求に一定の遅延が生じます。 物理的なサーバー障害はfsyncなしでメッセージが失われます。
flush.ms何一つlog.flush.interval.msこの構成は、fsyncログをディスクに強制するまでの時間間隔をピン留めするために使われます。 例えば、1000に設定すると、fsyncは1000msごとに必要です。 この方法は一般的に推奨されません
index.interval.bytes4096log.index.interval.bytesデフォルト設定では、メッセージに4096バイトごとにインデックスを追加し、インデックスを増やすほど読み取りメッセージが近くなりますが、インデックスサイズは増加します。 このオプションは一般的に必須ではありません
max.message.bytes1000000max.message.bytesカフカの付加メッセージの最大サイズ。 このサイズを増やすと、コンシューマーがメッセージを最大サイズまで取得できるように、コンシューマーのフェッチサイズも大きくする必要があります。
最小・クリーン・汚れ・比率0.5最小・クリーン・汚れ・比率この構成は、丸太圧縮機が丸太をどれくらいの頻度で除去しようとするかを制御します。 デフォルトでは、圧縮率が50%を超えるログは避けられます。 この比率は最大のスペースの無駄を避けることができます
min.insync.replicas1min.insync.replicasプロデューサーがrequest.required.acksを-1に設定している場合、min.insync.replicasは最小レプリカ数を指定します(各repica書き込みは成功しなければなりません)。この数に達しなければ、プロデューサーは例外を生成します。
retention.bytes何一つlog.retention.bytes「delete」保持ポリシーを使用する場合、この構成はログが削除されるまでに達成できる最大サイズを指します。 デフォルトではサイズ制限はなく、時間制限のみです
retention.ms7日間ログ、保持、分「削除」保持ポリシーを使う場合、この構成は削除ログが削除される前に保存された時刻を指します。
segment.bytes1GBlog.segment.bytesKafkaではログログはチャンクに保存されており、この構成はログログのサイズをチャンクに分割したものです
segment.index.bytes10MBlog.index.size.max.バイトこの構成は、オフセットとファイル位置間でマッピングされたインデックスファイルの大きさに相当します。 この構成は一般的に変更を必要としません
segment.ms7日間ログロール時間ログチャンクファイルが削除や圧縮が必要なサイズに達しなくても、ログ時間が上限に達すると新しいログチャンクファイルが強制されます
segment.jitter.ms0 ログロール。ジッター。 {ms,hours}logRollTimeMillisから引き算する最大ジッター。


コンシューマー設定

財産デフォルト形容
group.id コンシューマープロセスが存在するグループを一意に識別する文字列で、同じグループIDが設定されている場合、これらのプロセスは同じコンシューマーグループに属していることを示します
Zookeeper.connect(動物園の連通) Zookeeper接続の文字列を指定します。フォーマットはhostname:portです。ここではホストとポートがZookeeperサーバーのホストとポートの両方を表します。Zookeeperマシンがダウンした後に連絡が途絶えないように、複数のhostname:portを指定することも可能です。区切りはカンマで示します:
ホスト名1:ポート1、ホスト名2:ポート2、ホスト名3:ポート3
ZooKeeperのchrootパスを、ZooKeeperの接続文字列に追加できます。この接続文字列は独自のデータを保存するために使われます。
hostname1:port1, hostname2: port2, hostname3: port3/chroot/path
consumer.idヌル設定は不要で、一般的に自動的に生成されます
socket.timeout.ms30*100ネットワークリクエストのタイムアウト制限。 真のタイムアウト制限はmax.fetch.wait+socket.timeout.msです
socket.receive.buffer.bytes64*1024ソケットはネットワークリクエストのキャッシュサイズを受信するために使われます
fetch.message.max.バイト1024*1024フェッチリクエストごとのフェッチメッセージあたりの最大バイト数。 これらのバイトは各パーティションで使用されるメモリ上で監視されるため、この設定で消費者が使用するメモリ量を制御します。 フェッチリクエストのサイズは、サーバーが許容する最大メッセージサイズに等しくなければならず、そうでなければプロデューサーが送信できるメッセージのサイズが消費者が消費できるサイズを上回ってしまいます。
num.consumer.fetchers1フェッチデータに使用されるフェッチャースレッドの数
auto.commit.enabletrueもしそれが正当なら、消費者が取得したメッセージのオフセットは自動的にZookeeperに同期されます。 このコミットオフセットは、プロセスが停止した際に新しいコンシューマーによって使用されます
auto.commit.interval.ms60*1000消費者がズーキーパーにオフセットを送信する頻度は秒単位です
queued.max.メッセージ.チャンクス2キャッシュ用に使われる最大メッセージ数。 各チャンクはfetch.message.max.bytesと同じでなければなりません
rebalance.max.retries4新しいコンシューマーがコンシューマーグループに追加されると、コンシューマーのコレクションは各コンシューマーに割り当てられたパーティションの数を再バランスしようとします。 消費者のコレクションが変化すると、このリバランスは失敗し、割り当てが実行される際に再調整されます
fetch.min.bytes1サーバーが各フェッチリクエストで返すべき最小バイト数。 十分なデータが返ってこなければ、十分なデータが得られるまでリクエストは待ちます。
fetch.wait.max.ms100fetch.min.bytesを満たすのに十分なデータがない場合、この構成はサーバーがfetchリクエストに応答するまでの最大ブロック時間を指します。
rebalance.backoff.ms2000Reblanceを再挑戦する前に、距離を置く時間です
refresh.leader.backoff.ms200分割の指導者が指導者を失ったかどうかを判断する前に、後退の時間がある
auto.offset.reset最大Zookeeperに初期化されたオフセットがない場合、オフセットが次の値への応答である場合:
最小:自動リセットオフセットを最小オフセットに
最大:自動リセットオフセットを最大オフセットに
その他の場合:消費者に例外を適用します
consumer.timeout.ms-1メッセージが表示されない場合、特定の時間待ってもタイムアウト例外が出されます
exclude.internal.topicstrue内部の話題からのメッセージを消費者に露出させるかどうか
Parition.assignment.strategy分布消費者フローにパーティションを割り当てるポリシーを選択し、オプションで範囲、ラウンドロビンを選択してください
client.idグループIDの値は各リクエスト内の通話を追跡するユーザー固有の文字列です。 リクエストを生成したアプリケーションが論理的に確認されるはずです
zookeeper.session.timeout.ms6000飼育員セッションのタイムアウト制限。 この期間中に消費者が心拍メッセージを動物飼育員に送らなければ、切断されたとみなされ、リブランスが生成されます
zookeeper.connection.timeout.ms6000クライアントがZookeeper接続を確立するための最大待ち時間
zookeeper.sync.time.ms2000ZKフォロワーは最大時間ZKリーダーの後ろに遅れることがあります
offsets.storage動物園飼育員オフセットを保管していた場所:ズーキーパーやカフカ
offset.channel.backoff.ms1000オフセットチャネルへの再接続や失敗したオフセットのフェッチ/コミット要求の再試行のバックオフ時間
offsets.channel.socket.timeout.ms10000オフセットを読み取る際のフェッチ/コミット要求応答に対するソケットタイムアウトの制限。 このタイムアウト制限は、consumerMetadataリクエストによってオフセット管理を要求するために使われます
offsets.commit.max.retries5オフセットコミットが再試行された回数。 このリトライはシャットダウン間のオフセットコミットにのみ適用されます。 彼
dual.commit.enabledtrueoffsets.storageとして「kafka」を使うと、Zookeeperにオフセットを2回(kafkaに1回)コミットできます。 これはZookeeperベースのオフセットストレージからkafkaベースのオフセットストレージに移行する際に必須です。 どの消費者グループにとっても、移行が完了したらこのオプションをオフにするのが安全な推奨です
partition.assignment.strategy分布消費者データフローにパーティションを割り当てるポリシーとして「レンジ」ポリシーと「ラウンドロビン」ポリシーのどちらかを選択してください。 循環パーティションアロケーターは、利用可能なすべてのパーティションとすべての利用可能なコンシューマースレッドを割り当てます。 パーティションループをコンシューマースレッドに割り当てます。 すべての消費者インスタンスが決定されたものにサブスクライブされている場合、分割は決定論的分布に分割されます。 ラウンドロビン割り当て戦略は、以下の条件が満たされている場合にのみ可能です:(1) 各トピックが消費者強度あたりのデータフロー数が同じであること。 (2) 購読されたトピックの集合は、消費者グループの各消費者インスタンスごとに決定されます。


プロデューサー設定

財産デフォルト形容
metadata.broker.list ブートストラップを提供。 Producerはメタデータ(トピック、パーティション、レプリカ)を取得するためのみ使用されます。 実際のデータを送信するためのソケット接続は、返送されたメタデータデータに基づいて確立されます。 フォーマットは以下の通りです:
ホスト1:ポート1、ホスト2:ポート2
このリストはブローカーのサブリストであったり、ブローカーを指すVIPであったりします
request.required.acks0この構成は、プロデュースリクエストが完了したとみなされる確認応答値です。 特に、他のどれだけ多くのブローカーがログにデータを提出し、その情報をリーダーに確認しているのか。 典型的な値は以下の通りです:
0:生産者がブローカーからの確認を一切待たないことを示します(0.7と同じ動作)。 この方法は遅延が最小限ですが、同時に最大のリスク(サーバーがダウンするとデータが失われるため)も最大です。
1: リーダーレプリカがデータ確認を受け取ったことを示します。 このオプションはレイテンシが低く、サーバーが受信を確認しることを保証します。
-1: プロデューサーはすべての同期レプリカがデータを受け取ったことを確認する。 遅延が最も大きいですが、この方法は同期されたレプリカの数が1つになるため、メッセージの損失リスクを完全に排除するわけではありません。一部のレプリカがデータを受け取ることを確実にしたい場合は、トピックレベルの設定で min.insync.replicas オプションを設定してください。 より詳しい議論は設計ドキュメントを読んでください。
request.timeout.ms10000ブローカーはrequest.required.acksの要件を実装しようと最善を尽くします。そうでなければクライアントにエラーが送信されます
producer.type同期このオプションは、メッセージが非同期でバックグラウンドスレッドで送信されているかどうかをピン留めします。 正しい値:
(1) 非同期:非同期送信
(2) 同期:同期送信
プロデューサーを非同期に設定することで、リクエストをバッチ単位で処理できます(これはスループットの向上に有利です)が、クライアントマシンが未送信データを失う可能性も生じます
serializer.classkafka.serializer.DefaultEncoderメッセージのシリアライズカテゴリ。 デフォルトのエンコーダは1バイト[]を入力し、同じバイト[]を返します[]
key.serializer.class キーワードのシリアライズクラス。 もしこれが与えられていない場合、デフォルトではメッセージに合わせることになります
partitioner.classkafka.producer.DefaultPartitionerメッセージをサブトピック間で分割するためのパーティショナークラス。 デフォルトのパーティショナーはキーのハッシュテーブルに基づいています
圧縮.codec何一つこのパラメータはデータ圧縮のためのコーデックを設定でき、「なし」、「gzip」、「snappy」と選択できます。
compressed.topicsヌルこのパラメータは、特定のトピックが圧縮されているかどうかを設定するために使用できます。 圧縮されたコーデックがNoCompressCodec以外のコーデックであれば、これらのコーデックは指定されたトピックデータに適用されます。 圧縮トピックのリストが空の場合は、すべてのトピックに特定の圧縮コーデックを適用します。 圧縮コーデックがNoCompressionCodecの場合、すべてのトピックで圧縮が利用可能ではありません。
message.send.max.retries3このパラメータにより、プロデューサーは失敗した送信リクエストを自動的に再試行します。 このパラメータは再試行回数を固定します。 注:0でない値を設定すると、送信が起きたり確認応答が失われたりする特定のネットワークエラーが繰り返されます
retry.backoff.ms100各リトライの前に、プロデューサーは関連するトピックのメタデータを更新し、新しいリーダーが割り当てられているかを確認します。 リーダー選択に少し時間がかかるため、このオプションはプロデューサーがメタデータを更新するまでにどれくらい待つ必要があるかを指定します。
topic.metadata.refresh.interval.ms600*1000プロデューサーは、パーティションの欠如、リーダーが利用できない場合など、いくつかの失敗シナリオでトピックのメタデータを更新することが多いです。 彼は規則的な周期を経るでしょう。 負の値に設定すると、メタデータは失敗した場合にのみ更新されます。 0に設定されている場合、各メッセージ送信後にメタデータが更新されます(この方法は推奨されません。システムが消費しすぎます)。 重要:更新はメッセージ送信後にのみ行われるため、プロデューサーがメッセージを送信しなければメタデータは更新されません。
queue.buffering.max.ms5000非同期モードが適用された際、ユーザーがデータをキャッシュする最大時間間隔。 例えば、メッセージが100に設定されている場合、100ms以内のメッセージはバッチ処理されます。 これによりスループットは向上しますが、キャッシュによる遅延が増加します。
queue.buffering.max.メッセージ10000非同期モードを使用する場合、プロデューサーがキューにキャッシュできる最大数の未送信メッセージをブロックするか、データを失わなければなりません
batch.num.messages200非同期モードを使うと、最大数のメッセージを一括処理できます。 あるいは、オンラインに到達したメッセージの数や queue.buffer.max.ms が届き、プロデューサーが処理します
send.buffer.bytes100*1024ソケット書き込みキャッシュサイズ
client.id“”このクライアントIDはユーザー固有の文字列で、各リクエストに含まれて通話を追跡し、論理的にアプリケーションがリクエストを行ったことを確認できるはずです。


プロデューサー設定

名前種類デフォルト重要性形容
boostrap.servers一覧 高くホスト/ポートグループはKafkaクラスターへの接続を確立します。 どのサーバーがブートストラップに割り当てられていても、データはすべてのサーバーで均等に読み込まれます。 このリストは初期化されたホストにのみ影響します(すべてのサーバーを検出するために使われます)。 このリスト形式は以下の通りです:
host1:port1,host2:port2,...
これらのサーバーは接続の初期化に限られ、クラスタのすべてのメンバーシップを発見するため(メンバーシップは動的に変化することがあるため)、このリストはすべてのサーバーを含める必要はありません(複数のサーバーを用意したい場合もありますが、この場合は1台のサーバーがダウンしている場合もあります)。 このリストにサーバーが表示されない場合、リストが利用可能になるまで送信は失敗します。
アクスストリング1高くプロデューサーは、データ受信後にサーバーからの受信確認信号を必要とし、この構成はプロダダーが必要とする確認応答信号の数を指します。 この構成は実際にはデータバックアップの利用可能性を表しています。 以下の設定が一般的な選択肢です:
(1) acks=0:0に設定すると、プロデューサーは受信した情報の確認を待つ必要がなくなります。 レプリカは即座にソケットバッファに追加され、送信されたとみなされます。 この場合、サーバーがデータを完全に受信した保証はなく、設定の再試行は失敗したかどうか分からないためうまくいかず、フィードバックのオフセットは常に-1に設定されます。
(2) acks=1:これはリーダーがローカルログにデータを書き込むのを少なくとも待つが、すべてのフォロワーが成功するまで待つ必要はないことを意味します。 この場合、フォロワーがデータのバックアップに成功せず、リーダーが再び電話を切ると、メッセージは失われます。
(3) acks=all:これはリーダーがすべてのバックアップがログを正常に書き込むのを待つ必要があり、この戦略により1つのバックアップが生き残っている限りデータが失われないことを保証します。 これが最も強力な保証です。
(4) acks=2などの他の設定も可能で、これらは一定数のackを必要としますが、この戦略は一般的にほとんど使われません。
buffer.memory長い33554432高くプロデューサーはデータのメモリサイズをキャッシュするために使用できます。 もしデータがブローカーに送られるより速く生成された場合、プロデューサーは「block.on.buffer.full」で示される例外をブロックまたはスローします。

この設定はプロデューサーが使用できる総メモリに関連していますが、プロデューサーが使用するすべてのメモリがキャッシュに使われるわけではないため、厳密な制限ではありません。 圧縮が導入された場合は圧縮に一部の追加メモリが使用され、保守要求には一部が使われます。
圧縮型ストリング何一つ高くプロデューサーはデータを圧縮するために使われる圧縮の一種です。 デフォルトは非圧縮です。 正しいオプション値は「なし」「gzip」「snappy」です。
圧縮はバッチ処理に最適であり、バッチ処理されるメッセージが多いほど圧縮性能が向上します。
再挑戦知力0高く値が0より大きいと、そのデータが失敗するとクライアントは再送信します。 これらのリトライは、クライアントが送信エラーを受けた場合と何ら変わりません。 リトライでデータの順序を変更できる可能性があります。両方のメッセージレコードが同じパーティションに送信され、最初のメッセージが失敗し、2番目のメッセージが最初のメッセージより先に現れた場合です。
batch.size知力16384中程度プロデューサーはリクエスト数を減らすためにメッセージレコードをバッチ処理しようとします。 これによりクライアントとサーバー間の性能が向上します。 この構成はバッチ処理メッセージのデフォルトバイト数を制御します。
このバイト数を超えるメッセージバイトの処理は試みられません。
ブローカーに送られるリクエストは複数のバッチで構成され、各パーティションごとに1つのリクエストが入ります。
小さいバッチ値ほど使用頻度が低く、スループットが低下することがあります(0はバッチ処理のみを使用します)。 大きなバッチはメモリ容量を無駄にするため、特定のバッチ値にメモリを割り当てる必要があります。
client.idストリング 中程度この文字列はリクエストが行われる際にサーバーに送信されます。 目的は、IPやポートの許可リスト外のアプリケーションが情報を送信できるように、リクエストの出所を追跡できるようにすることです。 このアプリは録音やトラッキング以外の機能的な目的がないため、どんなストリングでも設定できます
linger.ms長い0中程度プロデューサーグループは、リクエストと送信の間に届いたメッセージを集約し、別のリクエストバッチを記録します。 通常、これはレコードが送信速度より速く生成された場合にのみ発生します。 しかし、特定の条件下では、クライアントはリクエスト数を減らしたり、適度な負荷にしたいと思うでしょう。 このセットアップは小さな遅延を加えることで行われます。つまり、レコードをすぐに送信するのではなく、プロデューサーが一定の遅延時間で待って他のメッセージレコードを送信し、それらをバッチ処理できるようにします。 これはTCP Nagleに似たアルゴリズムと考えられます。 この設定はバッチ処理の遅延境界を高く設定します。パーティションのbatch.sizeを取得すれば、この設定に関係なくすぐに送信されますが、この設定よりはるかに少ないバイト数のメッセージが届く場合は、より多くのメッセージを得るために特定の時間を「留めておく」必要があります。 この設定はデフォルトで0、つまり遅延なしとなります。 例えばlinger.ms=5を設定するとリクエスト数は減りますが、同時に遅延が5ms増加します。
最大リクエストサイズ知力1028576中程度要求された最大バイト数。 これは最大記録サイズのカバーにも効果的です。 注意:サーバーはメッセージレコードサイズのオーバーライドを持ち、この設定とは異なります。 この設定により、生産者が一度に大量に送信できるリクエスト数が制限され、大量のリクエストが出るのを防ぎます。
receive.buffer.bytes知力32768中程度データを読み込む際に使われるTCP受信キャッシュサイズ
send.buffer.bytes知力131072中程度TCP 送信キャッシュサイズは、データ送信時に使用されます
timeout.ms知力30000中程度この設定オプションは、フォロワーからの確認を待つサーバーの最大待ち時間を制御します。 この期間内に確認されたリクエスト数が満たされない場合、エラーが返されます。 このタイムアウト制限はサーバー側で測定され、リクエストを含むネットワーク遅延はありません
block.on.buffer.fullブール値trueローメモリキャッシュが尽きると、新しいメッセージレコードの受信を停止するかエラーを投げなければなりません。 デフォルトではtrueに設定されていますが、一部のブロッキングが予想に値しない場合もあるため、すぐにエラーを出す方が良いです。 これは、レコードが送信されてキャッシュが満杯の場合、プロデューサーが例外エラー(BufferExhaustedException)を投げます
metadata.fetch.timeout.ms長い60000ローこれは、私たちが取得した一部の要素の初めてのデータを指します。 要素にはトピック、ホスト、パーティションが含まれます。 この構成は、フェッチによって要素が成功するまでの時間を指します。そうでなければクライアントに例外が送信されます。
metadata.max.age.ms長い300000ローマイクロ秒単位の時間は、メタデータを強制的に更新する間隔です。 たとえ分割指導部の変化が見られなくても。
metric.reporters一覧[]ロー指標を測定するために使われるクラスの一覧。 MetricReporterインターフェースを実装することで、新しい指標が生成されるたびにクラスが変更されるようになります。 JmxReporterは常にJMX統計を登録する方法を含みます
metrics.num.samples知力2ロー指標を維持するために使用されるサンプル数
metrics.sample.window.ms長い30000ローメトリクスシステムは、修正可能なウィンドウサイズ内で設定可能なサンプル数を維持します。 この構成では例えばウィンドウサイズの設定が行われます。 30秒間、2つのサンプルを保持することがあります。 ウィンドウをロールアウトすると、最も古いウィンドウを消去して書き換えます
recoonect.backoff.ms長い10ロー接続が失敗すると、再接続時の待ち時間がかかります。 これにより、クライアントの再接続を繰り返し回避できます
retry.backoff.ms長い100ロー失敗した生果物リクエストを再試すまでの待ち時間。 送信・失敗のデッドループに陥らないようにしましょう。




先の:【練習】Eclipseがロンボックプラグインをインストールする
次に:Java JMXは理解し使いやすさが簡単です
 地主| 掲載地 2021/11/02 14:10:57 |
server.properties 設定

免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com