私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
プロデューサーはメッセージを作成して Kafka に配信する責任があります。
Kafka のデフォルトのパーティション化戦略: キーが指定されている場合、同じキーを持つメッセージは同じパーティションに送信されます (パーティションは順序付けされています)。キーが指定されていない場合は、ポーリング戦略が使用されます。
acks は、メッセージが正常に書き込まれたと判断する前に、プロデューサがメッセージを受信するために必要なパーティション レプリカの数を指定します。
3 つの方法に利点も欠点もありません。代わりに、地域の状況に応じて適切な戦略を選択する必要があります。パフォーマンスと信頼性の間にはトレードオフの関係があります。
メッセージを送信するには 3 つの方法があります。
ack = 0。
プロデューサは、メッセージの送信後にブローカからの応答を待ちません。ほとんどの場合、Kafka の可用性が高く、プロデューサーには自動的に再送信を試みるメカニズムがあるため、メッセージは正常に配信されます。ただし、再試行不可能なエラーまたはタイムアウトが発生した場合、メッセージは失われ、アプリケーションは情報や例外を受け取りません。
同じ構成環境では、acks を 0 に設定すると、最大のスループットを達成できます。
acks=1、デフォルト値。
プロデューサがメッセージを送信した後、パーティションのリーダー コピーがメッセージの書き込みに成功している限り、サーバーから成功の応答を受け取ります。
acks = -1 または acks = all。
プロデューサはメッセージを送信した後、サーバーから正常な応答を受信する前に、ISR 内のすべてのレプリカがメッセージを正常に書き込むまで待機する必要があります。
同じ構成環境では、acks を -1 (すべて) に設定すると、最も高い信頼性を実現できます。ただし、これはメッセージが信頼できる必要があるという意味ではありません。ISR にはリーダー コピーしか存在しない可能性があり、acks=1 の状況に陥るからです。