Maison  >  Article  >  interface Web  >  Premiers pas avec Apache Kafka

Premiers pas avec Apache Kafka

PHPz
PHPzoriginal
2024-08-05 22:36:121057parcourir

Getting Started With Apache Kafka

Apache Kafka est une puissante plateforme de streaming d'événements distribués, capable de gérer des milliards d'événements par jour. Développé à l'origine par LinkedIn et open source début 2011, Kafka est devenu l'épine dorsale de nombreuses architectures de données modernes. Dans ce guide, nous vous expliquerons tout ce dont vous avez besoin pour démarrer avec Apache Kafka, de la compréhension de son architecture à sa configuration et à l'exécution des opérations de base.

Présentation d'Apache Kafka

Apache Kafka est conçu pour gérer les flux de données en temps réel. Il fonctionne comme une plate-forme à haut débit et à faible latence pour gérer les flux de données. Kafka est souvent utilisé pour créer des pipelines de données et des applications de streaming en temps réel qui s'adaptent au flux de données. Certains cas d'utilisation courants incluent l'agrégation de journaux, l'analyse en temps réel et le traitement de flux.

Concepts clés et terminologie

Avant de plonger dans la configuration et les opérations, il est essentiel de comprendre quelques concepts et terminologies clés dans Kafka :

  • Producteur : Une application qui envoie des messages à un sujet Kafka.
  • Consommateur : Une application qui lit les messages d'un sujet Kafka.
  • Sujet : une catégorie ou un nom de flux auquel les messages sont envoyés par les producteurs.
  • Courtier : un serveur Kafka qui stocke et sert des sujets Kafka.
  • Partition : Une division d'un sujet pour l'évolutivité et le traitement parallèle.
  • Offset : Un identifiant unique pour chaque message au sein d'une partition.

Configuration d'Apache Kafka

La configuration d'Apache Kafka implique plusieurs étapes, notamment le téléchargement du logiciel nécessaire, sa configuration et le démarrage des services. Dans cette section, nous fournirons une procédure détaillée pour vous assurer que votre environnement Kafka est opérationnel sans problème.

Conditions préalables

Avant de commencer à configurer Kafka, assurez-vous que votre système répond aux conditions préalables suivantes :

  1. Java Development Kit (JDK) : Kafka nécessite Java 8 ou une version ultérieure. Vous pouvez vérifier votre version Java avec la commande suivante :

    java -version
    

    Si Java n'est pas installé, vous pouvez le télécharger et l'installer à partir du site Web d'Oracle ou utiliser un gestionnaire de paquets comme apt pour les systèmes basés sur Debian ou Brew pour macOS :

    # For Debian-based systems
    sudo apt update
    sudo apt install openjdk-11-jdk
    
    # For macOS
    brew install openjdk@11
    
  2. Apache ZooKeeper : Kafka utilise ZooKeeper pour gérer les configurations distribuées et la synchronisation. ZooKeeper est fourni avec Kafka, vous n'avez donc pas besoin de l'installer séparément.

Téléchargez et installez Kafka

  1. Télécharger Kafka : visitez la page de téléchargement officielle d'Apache Kafka et téléchargez la dernière version de Kafka. Au moment de la rédaction, Kafka 2.8.0 est la dernière version stable.

    wget https://downloads.apache.org/kafka/2.8.0/kafka_2.13-2.8.0.tgz
    
  2. Extraire le fichier téléchargé : Extrayez le fichier tar dans un répertoire de votre choix.

    tar -xzf kafka_2.13-2.8.0.tgz
    cd kafka_2.13-2.8.0
    
  3. Démarrer ZooKeeper : Kafka nécessite que ZooKeeper s'exécute. Démarrez le service ZooKeeper à l'aide du fichier de configuration fourni.

    bin/zookeeper-server-start.sh config/zookeeper.properties
    

    ZooKeeper devrait démarrer sur le port par défaut 2181. Vous devriez voir des messages de journal indiquant que ZooKeeper est opérationnel.

  4. Démarrer Kafka Broker : ouvrez une nouvelle fenêtre de terminal et démarrez le courtier Kafka à l'aide du fichier de configuration fourni.

    bin/kafka-server-start.sh config/server.properties
    

    Kafka devrait démarrer sur le port par défaut 9092. Vous devriez voir des messages de journal indiquant que le courtier Kafka est opérationnel.

Configuration Kafka

Bien que les configurations par défaut soient adaptées au développement et aux tests, vous devrez peut-être personnaliser les paramètres pour un environnement de production. Certains fichiers de configuration clés incluent :

  • server.properties : ce fichier contient des configurations pour le courtier Kafka, telles que l'ID du courtier, le répertoire des journaux et les écouteurs.
  • zookeeper.properties : ce fichier contient des configurations pour ZooKeeper, telles que le répertoire de données et le port client.

Vous pouvez modifier ces fichiers de configuration en fonction de vos besoins. Par exemple, pour changer le répertoire des journaux, vous pouvez modifier la propriété log.dirs dans le fichier server.properties :

log.dirs=/path/to/your/kafka-logs

Création de fichiers de service Systemd

Pour faciliter la gestion, notamment sur les serveurs Linux, vous pouvez créer des fichiers de service systemd pour ZooKeeper et Kafka. Cela vous permet de démarrer, d'arrêter et de redémarrer ces services à l'aide de systemctl.

  1. Fichier du service ZooKeeper : Créez un fichier nommé zookeeper.service dans le répertoire /etc/systemd/system/ :

    [Unit]
    Description=Apache ZooKeeper
    After=network.target
    
    [Service]
    Type=simple
    ExecStart=/path/to/kafka/bin/zookeeper-server-start.sh /path/to/kafka/config/zookeeper.properties
    ExecStop=/path/to/kafka/bin/zookeeper-server-stop.sh
    Restart=on-abnormal
    
    [Install]
    WantedBy=multi-user.target
    
  2. Fichier de service Kafka : Créez un fichier nommé kafka.service dans le répertoire /etc/systemd/system/ :

    [Unit]
    Description=Apache Kafka
    After=zookeeper.service
    
    [Service]
    Type=simple
    ExecStart=/path/to/kafka/bin/kafka-server-start.sh /path/to/kafka/config/server.properties
    ExecStop=/path/to/kafka/bin/kafka-server-stop.sh
    Restart=on-abnormal
    
    [Install]
    WantedBy=multi-user.target
    
  3. Enable and Start Services: Enable and start the services using systemctl:

    sudo systemctl enable zookeeper
    sudo systemctl start zookeeper
    
    sudo systemctl enable kafka
    sudo systemctl start kafka
    

    You can now manage ZooKeeper and Kafka using standard systemctl commands (start, stop, status, restart).

Verifying the Installation

To verify that your Kafka setup is working correctly, you can perform some basic operations such as creating a topic, producing messages, and consuming messages.

  1. Creating a Topic:

    bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
    

    You should see a confirmation message indicating that the topic has been created successfully.

  2. Producing Messages:

    bin/kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:9092
    

    Type a few messages in the console and press Enter after each message.

  3. Consuming Messages:
    Open a new terminal window and run:

    bin/kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server localhost:9092
    

    You should see the messages you produced in the previous step.

By following these steps, you should have a fully functional Apache Kafka environment set up on your system. This setup forms the foundation for developing and deploying real-time data streaming applications using Kafka.

Conclusion

Getting started with Apache Kafka can seem daunting, but with the right guidance, you can quickly get up to speed. This guide provided a comprehensive introduction to Kafka, from installation to basic operations and building simple producers and consumers. As you continue to explore Kafka, you will uncover its full potential for building robust, real-time data pipelines.

By following this guide, you’ve taken the first steps in mastering Apache Kafka. Happy streaming!

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn