In questo tutorial, ti mostreremo come installare e impostare Apache Kafka su un VPS con Ubuntu 18.04.
Kafka o Apache Kafka è un sistema di messaggistica distribuito basato sul principio del modello pub-sub (publish-subscribe). Ci consente di pubblicare e sottoscrivere un flusso di record che possono essere classificati. È un incredibilmente veloce , altamente scalabile , tollerante agli errori sistema ed è progettato per elaborare grandi quantità di dati in tempo reale . Apache Kafka può essere utilizzato anche come alternativa a un broker di messaggi, che ci consente di elaborare/trasformare un flusso di record. Kafka può essere utilizzato come sistema di messaggistica, ma su una scala piuttosto incomparabilmente enorme. Nel complesso, Apache Kafka è uno strumento molto potente se utilizzato correttamente.
Prerequisiti
- Un server che esegue Ubuntu 18.04 con almeno 4 GB di memoria. Ai fini di questo tutorial, utilizzeremo uno dei nostri Managed Ubuntu 18.04 VPS.
- Accesso SSH con privilegi di root o accesso allo stesso utente "root"
Fase 1:accedi tramite SSH e aggiorna il sistema
Accedi al tuo VPS Ubuntu 18.04 con SSH come utente root:
ssh root@IP_Address -p Port_number
Sostituisci "root" con un utente che dispone dei privilegi sudo, se necessario. Inoltre, sostituisci "IP_Address" e "Port_Number" con il rispettivo indirizzo IP e porta SSH del tuo server.
Una volta fatto, puoi verificare se hai la versione corretta di Ubuntu installata sul tuo server con il seguente comando:
# lsb_release -a
Dovresti ottenere questo output:
Distributor ID: Ubuntu Description: Ubuntu 18.04.2 LTS Release: 18.04 Codename: bionic
Quindi, esegui il comando seguente per assicurarti che tutti i pacchetti installati sul server siano aggiornati alle ultime versioni disponibili:
# apt update && apt upgrade
Fase 2:aggiungi un utente di sistema
Creiamo un nuovo utente chiamato "kafka", dopodiché lo aggiungeremo come sudoer.
# adduser kafka # usermod -aG sudo kafka
Fase 3:installa Java
Kafka è scritto in Java, quindi è necessaria una JVM per farlo funzionare. In questo tutorial utilizzeremo OpenJDK 11, poiché è la versione standard di Java fornita con Ubuntu da settembre 2018.
# apt install default-jre
Fase 4:scarica Apache Kafka
Ora scarichiamo Kafka, puoi andare qui e scaricare l'ultima versione se necessario. L'ultimo link per il download al momento della scrittura è già stato inserito nell'esempio per te.
# su - kafka
wget https://www-us.apache.org/dist/kafka/2.2.0/kafka_2.12-2.2.0.tgz -O kafka.tgz
Ora che il binario di Apache Kafka è stato scaricato, ora dobbiamo estrarlo nella nostra directory utente di Kafka
$ tar -xzvf kafka.tgz --stripe 1
Fase 5:Configura Apache Kafka
È ora di configurare Apache Kafka. Per impostazione predefinita, non siamo autorizzati a eliminare argomenti, categorie o gruppi in cui è possibile pubblicare messaggi. Per modificare questo comportamento, dobbiamo modificare la configurazione predefinita.
$ nano ~/config/server.properties
Aggiungi la riga seguente all'ultima riga del file di configurazione.
delete.topic.enable =vero
Fase 6:crea un file di unità di sistema per Apache Kafka
Zookeeper è necessario per eseguire Kafka. Kafka utilizza zookeeper, quindi dovremo prima avviare un'istanza del server Zookeeper prima di avviare il servizio Apache Kafka. In questo tutorial, utilizzeremo il pratico script fornito con Kafka per ottenere un'istanza Zookeeper a nodo singolo rapida e sporca.
Apri un nuovo file nel percorso del file /etc/systemd/system/zookeeper.service
e aprilo nel tuo editor di testo preferito. Useremo nano
per questo tutorial.
$ sudo nano /etc/systemd/system/zookeeper.service
Incolla le seguenti righe al suo interno:
[Unit] Requires=network.target remote-fs.target After=network.target remote-fs.target [Service] Type=simple User=kafka ExecStart=/home/kafka/bin/zookeeper-server-start.sh /home/kafka/config/zookeeper.properties ExecStop=/home/kafka/bin/zookeeper-server-stop.sh Restart=on-abnormal [Install] WantedBy=multi-user.target
Ora creiamo un file dell'unità di sistema per kafka nel percorso del file /etc/systemd/system/kafka.service
:
$ sudo nano /etc/systemd/system/kafka.service
Incolla le seguenti righe nel file:
[Unit] Requires=zookeeper.service After=zookeeper.service [Service] Type=simple User=kafka ExecStart=/bin/sh -c '/home/kafka/bin/kafka-server-start.sh /home/kafka/config/server.properties > /home/kafka/kafka.log 2>&1' ExecStop=/home/kafka/bin/kafka-server-stop.sh Restart=on-abnormal [Install] WantedBy=multi-user.target
Le nuove unità di sistema sono state aggiunte, quindi consentiamo a Apache Kafka di essere eseguito automaticamente all'avvio e quindi eseguire il servizio.
$ sudo systemctl enable kafka $ sudo systemctl start kafka
Fase 7:crea un argomento
In questo passaggio creeremo un argomento denominato “FirstTopic”, con una singola partizione e una sola replica:
$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic FirstTopic Created topic "FirstTopic".
Il valore del fattore di replica descrive quante copie di dati verranno create. Stiamo eseguendo con una singola istanza, quindi il valore sarebbe 1.
Il valore delle partizioni descrive il numero di broker tra i quali desideri che i tuoi dati vengano suddivisi. Stiamo utilizzando un unico broker, quindi il valore sarebbe 1.
Ora puoi vedere l'argomento creato su Kafka eseguendo il comando list topic:
$ bin/kafka-topics.sh --list --zookeeper localhost:2181 FirstTopic
Fase 8:invia messaggi utilizzando Apache Kafka
Apache Kafka viene fornito con un client della riga di comando che prenderà l'input da un file o input standard e lo invierà come messaggi al cluster Kafka. Il "produttore" è il processo che ha la responsabilità di inserire i dati nel nostro servizio Kafka. Per impostazione predefinita, Kafka invia ogni riga come messaggio separato.
Eseguiamo il produttore e quindi digitiamo alcuni messaggi nella console da inviare al server.
$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic FirstTopic >Welcome to kafka >This is the content of our first topic >
Tieni aperto il terminale e procediamo con il passaggio successivo.
Fase 9:utilizza Apache Kafka come consumatore
Apache Kafka ha anche una riga di comando per consentire al consumatore di leggere i dati da Kafka, in modo che il consumatore possa utilizzare Kafka per visualizzare i messaggi in un output standard.
Esegui il comando seguente in una nuova sessione SSH.
$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning Welcome to kafka This is the content of our first topic
Questo è tutto! Apache Kafka è stato installato e configurato correttamente. Ora possiamo digitare alcuni messaggi sul terminale del produttore come indicato nel passaggio precedente. I messaggi saranno immediatamente visibili sul nostro terminale consumer.
Ovviamente, non devi sapere come installare Apache Kafka su Ubuntu 18.04 se hai un VPS Ubuntu 18.04 ospitato con noi. Se lo fai, puoi semplicemente chiedere al nostro team di supporto di installare Apache Kafka su Ubuntu 18.04 per te. Sono disponibili 24 ore su 24, 7 giorni su 7 e saranno in grado di aiutarti con l'installazione di Apache Kafka, nonché con eventuali requisiti aggiuntivi che potresti avere.
PS. Se ti piace leggere questo post del blog su come installare Apache Kafka su Ubuntu 18.04, sentiti libero di condividerlo sui social network usando le scorciatoie qui sotto, o semplicemente lascia un commento in basso nella sezione commenti. Grazie.