Apache Kafka est une puissante plate-forme de flux d'événements distribué qui est largement utilisée pour créer des pipelines et des applications de données à temps réel. L'une de ses fonctions principales est la Kafka Message Key
, qui joue un rôle vital dans la partition, le tri et le routage des messages. Cet article explore le concept, l'importance et les exemples réels de la clé Kafka. Quelle est la clé Kafka?
clé (clé)
Kafka Key offre certains avantages, ce qui le rend essentiel dans certaines scènes:
Tri des messages
:Le message avec la même clé se dirige toujours vers la même partition. Cela garantit que l'ordre de ces messages dans la partition est réservé. Exemple: Dans le système E -Commerce, en utilisant Order_ID comme clé pour s'assurer que tous les événements liés à des commandes spécifiques (par exemple, "La commande a été passée" et "Expédition des commandes") est traitée dans l'ordre.
Exemple: Pour le système Internet des objets, l'utilisation de Sensor_ID comme clé peut garantir que les données du même capteur sont traitées ensemble.
Exemple: dans le système de suivi des activités utilisateur, l'utilisation de l'utilisateur_id comme clé peut garantir que toutes les opérations de l'utilisateur sont emballées afin d'effectuer une analyse personnalisée.
Quand la clé doit-elle être utilisée?
Compression logarithmique
: Maintenez uniquement le dernier état de chaque clé.Supposons que vous souhaitiez suivre les activités des utilisateurs sur le site Web. Utilisez user_id comme clé pour vous assurer que toutes les opérations d'un seul utilisateur sont acheminées vers la même partition.
<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>
Ici, tous les messages utilisant User123 comme clé entrent la même partition, conservant ainsi sa commande.
Pour le système Internet des objets qui envoie la lecture de la température pour chaque capteur, utilisez Sensor_ID comme clé.
<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>
Cela garantit que toutes les lectures de Sensor42 sont regroupées.
Dans le système de traitement des commandes, utilisez Order_id comme clé pour maintenir l'ordre de l'événement de chaque commande.
<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>
clé de conception prudente :
:
Lorsque vous utilisez la clé, analysez régulièrement la charge de partition pour assurer la distribution équilibrée.Clé correctement sérialisé (par exemple, JSON ou AVRO) pour assurer la compatibilité et la cohérence avec les consommateurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!