私はカフカを新しくしました。私の要件は、私は2つのパーティション、例えばPartition-0とPartition-1を持っており、私もKEY値を含む値のリストを持っています。私はkey-1がPartition-0に、Key-2がPartition-1に行くように私の鍵に従ってデータを保存したい。古いAPIでは、Partitionインターフェースを実装する必要があるように達成する方法がありますが、私は新しいAPIでこれをどうやって行うことができますか?ありがとうカフカ:カフカでラウンドロビンパーティションを達成する方法
1
A
答えて
0
ラウンドロビン配信を実現するために、新しいプロデューサでPartitioner
インターフェイス(https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/producer/Partitioner.java)を実装することもできます。あなたはカフカプロデューサーのdefault partitionerをオーバーライドすることによって、ラウンドロビン方式でカフカに生成することができますhttps://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/producer/internals/DefaultPartitioner.java
0
-
あなたは参照用DefaultPartitioner
を使用することができます。実装上
疑似実装
class RRPartitioner():
def __init__():
# Using topic metadata get total number of partitions
self.total_partitions = client[topic].get_number_partitions()
self.part_offset = 0
def partitioner(self, key, msg):
if self.part_offset > self.total_partitions:
self.part_offset = 0
return self.part_offset
else:
self.part_offset += 1
return self.part_offset
それはあなたがメッセージをキーに応じて注文することにしたいとラウンドロビンを持っている場合は、カスタムパーティショナに多くを行う必要があります、純粋なラウンドロビンです。
0
ラウンドロビンの動作をしたい場合は、Producerに書き込むときにキーを渡さないでください。DefaultPartitioner
があなたのために機能します。カスタム実装を書く必要はありません。 Javadocから:
/**
* The default partitioning strategy:
* <ul>
* <li>If a partition is specified in the record, use it
* <li>If no partition is specified but a key is present choose a partition based on a hash of the key
* <li>If no partition or key is present choose a partition in a round-robin fashion
*/
関連する問題
- 1. カフカ構成
- 2. カフカ:カフカに複数の着信ファイルを作成するには?
- 3. カフカ
- 4. カフカのスパークストリーミングをベンチマークする方法は?
- 5. カフカ0.9:カフカはカフカの消費者の私の読書から
- 6. カフカ - 新しいメッセージを見る方法
- 7. カフカ:マルチブローカーアーキテクチャー
- 8. カフカは
- 9. カフカ推奨システム構成
- 10. metricbeat出力カフカ構成
- 11. カフカDSL - マニュアルメッセージでコミットする
- 12. は、私はカフカに新しいですカフカ
- 13. 「カフカ・スパウト」と「カフカ・コンシューマー」の違いは何ですか?
- 14. カフカ - "一度だけの配達"の意味で
- 15. カフカ0.8.2コンシューマ
- 16. インポートカフカエラー、カフカ-pythonの
- 17. カフカ - ジャワ - crashs
- 18. カフカとアッカクラスタ
- 19. カフカとPython
- 20. カフカとスパークストリーミングシンプルプロデューサコンシューマ
- 21. カフカwith server.properties log4j
- 22. カフカ出力ストリーム
- 23. カフカのパーティションが
- 24. カフカ・スパウト・インテグレーション
- 25. カフカ噴出エラー
- 26. カフカ+スパークストリーミング:kafka.common.OffsetOutOfRangeException
- 27. カフカ複製
- 28. カフカのスパークストリーミングダイナミックスキーマ
- 29. カフカは:レプリカセット
- 30. カフカ-アブロ・コンソール・プロデューサークイックスタート
これは、最も簡単なソリューションですが、あなたは完全に有効な場合 – serejja
あるTrue..youは、メタデータを定期的にプロデューサーや投票を再起動する必要がありますされ、実行時にパーティションを追加する場合、それは動作しません。変更。バストは、既存の鍵を握られたプロデューサーのほとんどが同じ問題IIRCを持っています。 –