2017-08-06 12 views
2

kafka 0.10.xを使用しています。特定のメッセージの後に送信者のkafkaがメッセージを送信しないようにする方法がある場合、/探しています。ここでの目標は、特定の番号のメッセージのみを1時間ごとに送信するようにユーザーを制限することです。 誰かが同様のユースケースに遭遇した場合は、あなたの調査結果を共有してください。あなたはブローカーのconfigsを利用することができますパブリッシャーのKAFKAメッセージの制限?

+0

可能な選択肢は、(それらを処理することになっているものは何でも)消費者の側に余分なメッセージをスキップすることです。 – Thilo

答えて

1

事前に おかげ......:

message.max.bytes(デフォルト:1000000) - ブローカーが受け入れるメッセージの最大サイズ。これは消費者fetch.message.max.bytesよりも小さくなければならない。そうしないと、ブローカは消費できないメッセージを持ち、消費者がハングしてしまう。

log.segment.bytes(デフォルト:1GB) - Kafkaデータファイルのサイズ。そのメッセージが1より大きいことを確認してください。デフォルトは問題ありません(大容量のメッセージは1GBを超えないようにしてください)。

replica.fetch.max.bytes(デフォルト:1MB) - データの最大サイズブローカが複製できること。これはmessage.max.bytesより大きくなければなりません。つまり、 ブローカはメッセージを受け入れ、それらを複製できません。潜在的なデータ損失につながります。

私はあなたがやりたい設定を微調整することができると思い

1

カフカは、いくつかのスロットリングとクォータのメカニズムを持っていますが、それらのどれも正確に厳密に日常的にメッセージ数に基づいて生産を制限するために、あなたの条件に一致しません。 https://kafka.apache.org/documentation/#design_quotas

カフカのクラスタでのApacheのカフカ0.11.0.0ドキュメントから

は、クライアントが使用する ブローカーのリソースを制御する要求にクォータを強制する能力を持っています。クライアントクォータの二種類が クォータを共有するクライアントのグループごとにカフカブローカーによって強制することができます。

  • ネットワーク帯域幅の割り当てが要求率クォータが定義

  • (0.9以降)バイトレートのしきい値を定義しますネットワークのパーセンテージ としてCPU使用率閾値及びI/Oスレッド(0.11以降)

CLIENカッパ0.9.0.0で最初に導入されました。クライアントがネットワークを飽和させたり、ブローカーリソースを独占したりするのを防ぐため、プロデューサとコンシューマのレート制限が適用されます。

詳細

参照KIP-13:0.9で導入https://cwiki.apache.org/confluence/display/KAFKA/KIP-13+-+Quotas

クォータ機構を容易に変更することができるクライアント・コンフィギュレーションで設定client.id、に基づいていました。理想的には、認証されたユーザー名にクォータを設定する必要があるため、0.10.1.0では追加の認証クォータ機能が追加されました。詳細

参照KIP-55:https://cwiki.apache.org/confluence/display/KAFKA/KIP-55%3A+Secure+Quotas+for+Authenticated+Users

データ量(すなわち、帯域幅調整)ではなく、メッセージやリクエストの数の数に作業上述割当てメカニズムの両方。クライアントが多数の小さなメッセージを送信したり、メッセージを返さない多くの要求(たとえば、min.byteが0に設定されているコンシューマ)を行った場合でも、依然としてブローカを圧倒する可能性があります。この問題に対処するために、0.11.0.0が追加され、リクエストレートによるスロットルサポートが追加されました。詳細については、

参照KIP-124:あなたはあなたのプロデューサーは、常に特定のサイズのメッセージを公開することがわかっている場合、その後、あなたはMBでも表現さ値幅制限を計算することができた背景として、すべてのそれとhttps://cwiki.apache.org/confluence/display/KAFKA/KIP-124+-+Request+rate+quotas

クォータとして構成できるレート制限(MB /秒)。プロデューサーは何も送信せずに12時間何も送っておらず、短い時間でより速いレートで試して送信しようとするので、制限は1秒間に強制されるため、制限された公開レートに制限されます。 1日あたりではありません。

メッセージサイズが不明な場合、またはプロダクションリクエストを使用してメッセージが公開されている場合は、要求レート調整を使用して、認証済みユーザーがメッセージを公開することを許可するレートメッセージ/日の制限でも帯域幅の制限でもなく、「ネットワークとI/OスレッドのパーセンテージとしてのCPU使用率のしきい値」となります。これは、DoSの問題を回避するために役立ちますが、実際にはメッセージ数を制限するものではありません。

Kafkaに追加されたメッセージ数の割り当てまたはメッセージストレージの割り当てを確認したい場合は、Kafka改善提案(KIP)プロセスが機能していることを明確に示しているので、このエリアまたは他のエリアで改善提案を提出することをおすすめします。詳細については、

参照KIPプロセス:https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Improvement+Proposals

関連する問題