Installazione Apache Kafka Server su Ubuntu 18.04

In questo tutorial andremo ad esaminare il prodotto Apache Kafka, sistema di gestione messaggistica distribuita su Ubuntu Server 18.04.

Partiamo da una macchina virtuale Ubuntu 18.04 preinstallata (per l’installazione leggere questo articolo) ed aggiorniamo il sistema

sudo apt update

sudo apt upgrade

Per poter utilizzare Apache Kafka è necessario installare la JDK versione 8 (utilizzeremo la versione open)

sudo apt-get install openjdk-8-jdk

insieme ad Apache Kafka, installeremo Apache ZooKeeper, che non è altro che un software per la gestione di applicazioni distribuite, l’aiuto che ZooKeeper fornisce a Kafka consiste nel coordinamento di consumer e broker

sudo apt-get install zookeeperd

abilitiamo l’avvio automatico al boot di ZooKeeper

sudo systemctl enable zookeeper

infine verifichiamo che il servizio ZooKeeper sia attivo sulla porta standard 2181

ss -a | grep 2181

tcp LISTEN 0 50 *:2181

completata l’installazione del componente ZooKeeper, scarichiamo dal sito ufficiale Apache Kafka

cd

wget http://apache.panu.it/kafka/2.0.0/kafka_2.12-2.0.0.tgz

tar -xvzf kafka_2.12-2.0.0.tgz

sudo mv kafka_2.12-2.0.0/ /opt/

cd /opt

sudo mv kafka_2.12-2.0.0/ apachekafka/

Impostiamo le variabili di ambienti per l’utente che dovrà far partire il server Kafka, per semplicità utilizzo root , ma è consigliato creare un utente apposito

sudo vim /etc/profile

aggiungiamo alla fine del file

export KAFKA_HOME=”/opt/apachekafka/”
export PATH=”$PATH:${KAFKA_HOME}/bin”

sudo reboot

a questo punto avviamo manualmente il server Kafka

cd /opt/apachekafka/bin

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

quindi il sistema in output inizializzerà il servizio.

Per testare la funzionalità del tutto, simuliamo una comunicazione tra producer e consumer, attraverso gli strumenti offerti da Kafka; creiamo un Topic

cd /opt/apachekafka/bin

sudo ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

Created topic “test”.

adesso simuliamo il producer che invia messaggi in tempo reale

sudo ./kafka-console-producer.sh --broker-list localhost:9092 --topic test

viene fornito un prompt per l’invio del messaggio (>) e successivamente simuliamo su un’altra shell il consumer

cd /opt/apachekafka/bin

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

Per avere evidenza del funzionamento della comunicazione tra producer e consumer scriviamo un messaggio nella finestra del producer e dall’altra parte il consumer la visualizzerà

Per vedere la lista dei topic attivi (vengono creati per non distinguere a chi inviare)

cd /opt/apachekafka/bin

sudo ./kafka-topics.sh --list --zookeeper localhost:2181

test

Per creare il servizio su systemd che avvia automaticamente Apache Kafka, bisogna creare

sudo vim /etc/systemd/system/apachekafka.service

[Unit]
Description=Apache Kafka
After=network.target
[Service]
User=root
ExecStart=/opt/apachekafka/bin/kafka-server-start.sh /opt/apachekafka/config/server.properties
[Install]
WantedBy=multi-user.target

sudo systemctl enable apachekafka.service

sudo systemctl start apachekafka.service

Potrebbero interessarti anche...

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

Chiudi