Apache Kafkaは、実際のデータパイプラインとアプリケーションを構築するために広く使用されている強力な分散イベントストリームプラットフォームです。そのコア関数の1つは、メッセージパーティション、ソート、ルーティングで重要な役割を果たしている Kafkaメッセージキー
です。この記事では、Kafkaキーの概念、重要性、および実際の例について説明します。 カフカの鍵は何ですか?
key(key)
:メッセージを決定するパーティションが送信されます。
:
例:e -Commerceシステムでは、Order_idをキーとして使用して、特定の注文に関連するすべてのイベント(「注文が配置されている」および「注文配送」)が順番に処理されることを確認します。
例:モノのインターネットシステムの場合、sensor_idをキーとして使用すると、同じセンサーからのデータが一緒に処理されるようにします。
キーをいつ使用する必要がありますか?
次の状況では、キーを使用する必要があります。
ウェブサイトでユーザーアクティビティを追跡するとします。 user_idをキーとして使用して、単一のユーザーのすべての操作が同じパーティションにルーティングされていることを確認します。
<code class="language-python">from confluent_kafka import Producer producer = Producer({'bootstrap.servers': 'localhost:9092'}) # 使用user_id作为键发送消息 key = "user123" value = "page_viewed" producer.produce(topic="user-activity", key=key, value=value) producer.flush()</code>
ここで、キーとしてuser123を使用してすべてのメッセージが同じパーティションを入力し、それによりその順序を保持します。
<code class="language-python">from confluent_kafka import Producer producer = Producer({'bootstrap.servers': 'localhost:9092'}) # 使用sensor_id作为键发送消息 key = "sensor42" value = "temperature=75" producer.produce(topic="sensor-data", key=key, value=value) producer.flush()</code>
例3:注文処理
<code class="language-python">from confluent_kafka import Producer producer = Producer({'bootstrap.servers': 'localhost:9092'}) # 使用order_id作为键发送消息 key = "order789" value = "Order Placed" producer.produce(topic="orders", key=key, value=value) producer.flush()</code>
:
ホットスポットを避けるために、各パーティションにキーが均等に配布されていることを確認してください。キーを使用する場合、パーティションの負荷を定期的に分析して、バランスの取れた分布を確保します。
消費者との互換性と一貫性を確保するために、正しくシリアル化されたキー(JSONやAVROなど)。
以上がKafka Keysの理解:包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。